{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "35f1ce67",
   "metadata": {},
   "source": [
    "# 股票预测 - 每个股票单独训练模型"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "44a9b31b",
   "metadata": {},
   "source": [
    "## 导库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "566d7f4d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import os\n",
    "import torch\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "import numpy as np\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "import torch.nn as nn\n",
    "from torch.optim import Adam\n",
    "import warnings\n",
    "\n",
    "warnings.filterwarnings(\"ignore\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3affdcb5",
   "metadata": {},
   "source": [
    "## 参数配置"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "3ea827fa",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "使用设备: cuda\n"
     ]
    }
   ],
   "source": [
    "DATA_DIR = \"./../../data\"\n",
    "OUTPUT_DIR = \"./../../output\"\n",
    "MODEL_DIR = \"./../../model\"\n",
    "\n",
    "# 模型参数配置\n",
    "input_size = 1\n",
    "indrnn_hidden_size = 512  # IndRNN隐藏层大小\n",
    "lstm_hidden_size = 256  # LSTM隐藏层大小\n",
    "num_indrnn_layers = 3\n",
    "num_lstm_layers = 1\n",
    "output_size = 1\n",
    "dropout = 0.2  # Dropout比率\n",
    "batch_size = 64\n",
    "num_epochs = 20  # 训练轮数\n",
    "learning_rate = 0.001\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "seq_len = 10  # 序列长度\n",
    "\n",
    "print(f\"使用设备: {device}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a1b4536",
   "metadata": {},
   "source": [
    "## 工具函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "4ad7ad48",
   "metadata": {},
   "outputs": [],
   "source": [
    "def model_size(model):\n",
    "    \"\"\"\n",
    "    计算模型的参数总量\n",
    "    Args:\n",
    "        model: PyTorch模型\n",
    "    Returns:\n",
    "        size: 模型参数总量（单位：MB）\n",
    "    \"\"\"\n",
    "    total_params = sum(p.numel() for p in model.parameters() if p.requires_grad)\n",
    "    size = total_params * 4 / (1024**2)  # 转换为MB\n",
    "    return size"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1fe4b8c7",
   "metadata": {},
   "source": [
    "## 数据加载"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "ebd35d48",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据形状: (635729, 12)\n",
      "股票数量: 300\n"
     ]
    },
    {
     "data": {
      "application/vnd.microsoft.datawrangler.viewer.v0+json": {
       "columns": [
        {
         "name": "index",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "StockCode",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "Date",
         "rawType": "object",
         "type": "string"
        },
        {
         "name": "Open",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "Close",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "High",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "Low",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "Volume",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "Turnover",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "Amplitude",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "PriceChange",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "TurnoverRate",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "PriceChangePercentage",
         "rawType": "float64",
         "type": "float"
        }
       ],
       "ref": "e8d99563-2de9-4b66-87f2-1382a495accf",
       "rows": [
        [
         "0",
         "600000",
         "2015-04-20",
         "9.47",
         "8.89",
         "9.47",
         "8.68",
         "5724358",
         "10446728448.0",
         "8.42",
         "-0.49",
         "3.84",
         "-5.22"
        ],
        [
         "1",
         "600000",
         "2015-04-21",
         "8.79",
         "9.07",
         "9.1",
         "8.79",
         "3681947",
         "6615540736.0",
         "3.49",
         "0.18",
         "2.47",
         "2.02"
        ],
        [
         "2",
         "600000",
         "2015-04-22",
         "9.17",
         "9.31",
         "9.35",
         "9.02",
         "4207667",
         "7712130816.0",
         "3.64",
         "0.24",
         "2.82",
         "2.65"
        ]
       ],
       "shape": {
        "columns": 12,
        "rows": 3
       }
      },
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Date</th>\n",
       "      <th>Open</th>\n",
       "      <th>Close</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Volume</th>\n",
       "      <th>Turnover</th>\n",
       "      <th>Amplitude</th>\n",
       "      <th>PriceChange</th>\n",
       "      <th>TurnoverRate</th>\n",
       "      <th>PriceChangePercentage</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>600000</td>\n",
       "      <td>2015-04-20</td>\n",
       "      <td>9.47</td>\n",
       "      <td>8.89</td>\n",
       "      <td>9.47</td>\n",
       "      <td>8.68</td>\n",
       "      <td>5724358</td>\n",
       "      <td>1.044673e+10</td>\n",
       "      <td>8.42</td>\n",
       "      <td>-0.49</td>\n",
       "      <td>3.84</td>\n",
       "      <td>-5.22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>600000</td>\n",
       "      <td>2015-04-21</td>\n",
       "      <td>8.79</td>\n",
       "      <td>9.07</td>\n",
       "      <td>9.10</td>\n",
       "      <td>8.79</td>\n",
       "      <td>3681947</td>\n",
       "      <td>6.615541e+09</td>\n",
       "      <td>3.49</td>\n",
       "      <td>0.18</td>\n",
       "      <td>2.47</td>\n",
       "      <td>2.02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>600000</td>\n",
       "      <td>2015-04-22</td>\n",
       "      <td>9.17</td>\n",
       "      <td>9.31</td>\n",
       "      <td>9.35</td>\n",
       "      <td>9.02</td>\n",
       "      <td>4207667</td>\n",
       "      <td>7.712131e+09</td>\n",
       "      <td>3.64</td>\n",
       "      <td>0.24</td>\n",
       "      <td>2.82</td>\n",
       "      <td>2.65</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   StockCode        Date  Open  Close  High   Low   Volume      Turnover  \\\n",
       "0     600000  2015-04-20  9.47   8.89  9.47  8.68  5724358  1.044673e+10   \n",
       "1     600000  2015-04-21  8.79   9.07  9.10  8.79  3681947  6.615541e+09   \n",
       "2     600000  2015-04-22  9.17   9.31  9.35  9.02  4207667  7.712131e+09   \n",
       "\n",
       "   Amplitude  PriceChange  TurnoverRate  PriceChangePercentage  \n",
       "0       8.42        -0.49          3.84                  -5.22  \n",
       "1       3.49         0.18          2.47                   2.02  \n",
       "2       3.64         0.24          2.82                   2.65  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv(os.path.join(DATA_DIR, \"train.csv\"))\n",
    "\n",
    "# 列名映射\n",
    "column_mapping = {\n",
    "    \"股票代码\": \"StockCode\",\n",
    "    \"日期\": \"Date\",\n",
    "    \"开盘\": \"Open\",\n",
    "    \"收盘\": \"Close\",\n",
    "    \"最高\": \"High\",\n",
    "    \"最低\": \"Low\",\n",
    "    \"成交量\": \"Volume\",\n",
    "    \"成交额\": \"Turnover\",\n",
    "    \"振幅\": \"Amplitude\",\n",
    "    \"涨跌额\": \"PriceChange\",\n",
    "    \"换手率\": \"TurnoverRate\",\n",
    "    \"涨跌幅\": \"PriceChangePercentage\",\n",
    "}\n",
    "\n",
    "df.rename(columns=column_mapping, inplace=True)\n",
    "print(f\"数据形状: {df.shape}\")\n",
    "print(f\"股票数量: {df['StockCode'].nunique()}\")\n",
    "df.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "524c2a0b",
   "metadata": {},
   "source": [
    "## 特征工程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "9ccd690e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "添加技术指标后的特征数量: 25\n",
      "新增技术指标列: ['MA.MA1', 'MA.MA2', 'MA.MA3', 'MA.MA4', 'MA.MA5', 'MA.MA6', 'KDJ.K', 'KDJ.D', 'KDJ.J', 'MACD.DIFF', 'MACD.DEA', 'MACD.MACD', 'CCI.CCI']\n"
     ]
    },
    {
     "data": {
      "application/vnd.microsoft.datawrangler.viewer.v0+json": {
       "columns": [
        {
         "name": "index",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "StockCode",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "Date",
         "rawType": "object",
         "type": "string"
        },
        {
         "name": "Open",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "Close",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "High",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "Low",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "Volume",
         "rawType": "int64",
         "type": "integer"
        },
        {
         "name": "Turnover",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "Amplitude",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "PriceChange",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "TurnoverRate",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "PriceChangePercentage",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MA.MA1",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MA.MA2",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MA.MA3",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MA.MA4",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MA.MA5",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MA.MA6",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "KDJ.K",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "KDJ.D",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "KDJ.J",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MACD.DIFF",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MACD.DEA",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "MACD.MACD",
         "rawType": "float64",
         "type": "float"
        },
        {
         "name": "CCI.CCI",
         "rawType": "float64",
         "type": "float"
        }
       ],
       "ref": "9fb0e52f-341b-4933-b345-0bf913acbe07",
       "rows": [
        [
         "0",
         "600000",
         "2015-04-20",
         "9.47",
         "8.89",
         "9.47",
         "8.68",
         "5724358",
         "10446728448.0",
         "8.42",
         "-0.49",
         "3.84",
         "-5.22",
         "9.026",
         "9.055",
         "8.661",
         "8.665666666666668",
         "8.662",
         "8.147583333333333",
         "26.582278481012732",
         "26.582278481012732",
         "26.58227848101273",
         "0.0",
         "0.0",
         "0.0",
         "-66.66666666666667"
        ],
        [
         "1",
         "600000",
         "2015-04-21",
         "8.79",
         "9.07",
         "9.1",
         "8.79",
         "3681947",
         "6615540736.0",
         "3.49",
         "0.18",
         "2.47",
         "2.02",
         "9.026",
         "9.055",
         "8.661",
         "8.665666666666668",
         "8.662",
         "8.147583333333333",
         "34.17721518987347",
         "29.11392405063298",
         "44.30379746835446",
         "0.019393939393937742",
         "0.0038787878787875487",
         "0.03103030303030039",
         "-66.66666666666667"
        ],
        [
         "2",
         "600000",
         "2015-04-22",
         "9.17",
         "9.31",
         "9.35",
         "9.02",
         "4207667",
         "7712130816.0",
         "3.64",
         "0.24",
         "2.82",
         "2.65",
         "9.026",
         "9.055",
         "8.661",
         "8.665666666666668",
         "8.662",
         "8.147583333333333",
         "49.36708860759497",
         "35.864978902953645",
         "76.37130801687762",
         "0.059683705744308924",
         "0.015039771451891823",
         "0.0892878685848342",
         "100.00000000000058"
        ]
       ],
       "shape": {
        "columns": 25,
        "rows": 3
       }
      },
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>StockCode</th>\n",
       "      <th>Date</th>\n",
       "      <th>Open</th>\n",
       "      <th>Close</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Volume</th>\n",
       "      <th>Turnover</th>\n",
       "      <th>Amplitude</th>\n",
       "      <th>PriceChange</th>\n",
       "      <th>...</th>\n",
       "      <th>MA.MA4</th>\n",
       "      <th>MA.MA5</th>\n",
       "      <th>MA.MA6</th>\n",
       "      <th>KDJ.K</th>\n",
       "      <th>KDJ.D</th>\n",
       "      <th>KDJ.J</th>\n",
       "      <th>MACD.DIFF</th>\n",
       "      <th>MACD.DEA</th>\n",
       "      <th>MACD.MACD</th>\n",
       "      <th>CCI.CCI</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>600000</td>\n",
       "      <td>2015-04-20</td>\n",
       "      <td>9.47</td>\n",
       "      <td>8.89</td>\n",
       "      <td>9.47</td>\n",
       "      <td>8.68</td>\n",
       "      <td>5724358</td>\n",
       "      <td>1.044673e+10</td>\n",
       "      <td>8.42</td>\n",
       "      <td>-0.49</td>\n",
       "      <td>...</td>\n",
       "      <td>8.665667</td>\n",
       "      <td>8.662</td>\n",
       "      <td>8.147583</td>\n",
       "      <td>26.582278</td>\n",
       "      <td>26.582278</td>\n",
       "      <td>26.582278</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-66.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>600000</td>\n",
       "      <td>2015-04-21</td>\n",
       "      <td>8.79</td>\n",
       "      <td>9.07</td>\n",
       "      <td>9.10</td>\n",
       "      <td>8.79</td>\n",
       "      <td>3681947</td>\n",
       "      <td>6.615541e+09</td>\n",
       "      <td>3.49</td>\n",
       "      <td>0.18</td>\n",
       "      <td>...</td>\n",
       "      <td>8.665667</td>\n",
       "      <td>8.662</td>\n",
       "      <td>8.147583</td>\n",
       "      <td>34.177215</td>\n",
       "      <td>29.113924</td>\n",
       "      <td>44.303797</td>\n",
       "      <td>0.019394</td>\n",
       "      <td>0.003879</td>\n",
       "      <td>0.031030</td>\n",
       "      <td>-66.666667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>600000</td>\n",
       "      <td>2015-04-22</td>\n",
       "      <td>9.17</td>\n",
       "      <td>9.31</td>\n",
       "      <td>9.35</td>\n",
       "      <td>9.02</td>\n",
       "      <td>4207667</td>\n",
       "      <td>7.712131e+09</td>\n",
       "      <td>3.64</td>\n",
       "      <td>0.24</td>\n",
       "      <td>...</td>\n",
       "      <td>8.665667</td>\n",
       "      <td>8.662</td>\n",
       "      <td>8.147583</td>\n",
       "      <td>49.367089</td>\n",
       "      <td>35.864979</td>\n",
       "      <td>76.371308</td>\n",
       "      <td>0.059684</td>\n",
       "      <td>0.015040</td>\n",
       "      <td>0.089288</td>\n",
       "      <td>100.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3 rows × 25 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   StockCode        Date  Open  Close  High   Low   Volume      Turnover  \\\n",
       "0     600000  2015-04-20  9.47   8.89  9.47  8.68  5724358  1.044673e+10   \n",
       "1     600000  2015-04-21  8.79   9.07  9.10  8.79  3681947  6.615541e+09   \n",
       "2     600000  2015-04-22  9.17   9.31  9.35  9.02  4207667  7.712131e+09   \n",
       "\n",
       "   Amplitude  PriceChange  ...    MA.MA4  MA.MA5    MA.MA6      KDJ.K  \\\n",
       "0       8.42        -0.49  ...  8.665667   8.662  8.147583  26.582278   \n",
       "1       3.49         0.18  ...  8.665667   8.662  8.147583  34.177215   \n",
       "2       3.64         0.24  ...  8.665667   8.662  8.147583  49.367089   \n",
       "\n",
       "       KDJ.D      KDJ.J  MACD.DIFF  MACD.DEA  MACD.MACD     CCI.CCI  \n",
       "0  26.582278  26.582278   0.000000  0.000000   0.000000  -66.666667  \n",
       "1  29.113924  44.303797   0.019394  0.003879   0.031030  -66.666667  \n",
       "2  35.864979  76.371308   0.059684  0.015040   0.089288  100.000000  \n",
       "\n",
       "[3 rows x 25 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 添加技术指标特征\n",
    "# 计算移动平均线 (MA)\n",
    "df[\"MA.MA1\"] = df.groupby(\"StockCode\")[\"Close\"].transform(\n",
    "    lambda x: x.rolling(window=5).mean()\n",
    ")\n",
    "df[\"MA.MA2\"] = df.groupby(\"StockCode\")[\"Close\"].transform(\n",
    "    lambda x: x.rolling(window=10).mean()\n",
    ")\n",
    "df[\"MA.MA3\"] = df.groupby(\"StockCode\")[\"Close\"].transform(\n",
    "    lambda x: x.rolling(window=20).mean()\n",
    ")\n",
    "df[\"MA.MA4\"] = df.groupby(\"StockCode\")[\"Close\"].transform(\n",
    "    lambda x: x.rolling(window=30).mean()\n",
    ")\n",
    "df[\"MA.MA5\"] = df.groupby(\"StockCode\")[\"Close\"].transform(\n",
    "    lambda x: x.rolling(window=60).mean()\n",
    ")\n",
    "df[\"MA.MA6\"] = df.groupby(\"StockCode\")[\"Close\"].transform(\n",
    "    lambda x: x.rolling(window=120).mean()\n",
    ")\n",
    "\n",
    "\n",
    "# 计算KDJ指标\n",
    "def calculate_kdj(data, n=10, m1=3, m2=3):\n",
    "    data = data.copy()\n",
    "    low_list = data[\"Low\"].rolling(window=n, min_periods=1).min()\n",
    "    high_list = data[\"High\"].rolling(window=n, min_periods=1).max()\n",
    "\n",
    "    rsv = (data[\"Close\"] - low_list) / (high_list - low_list) * 100\n",
    "    data[\"KDJ.K\"] = rsv.ewm(alpha=1 / m1, adjust=False).mean()\n",
    "    data[\"KDJ.D\"] = data[\"KDJ.K\"].ewm(alpha=1 / m2, adjust=False).mean()\n",
    "    data[\"KDJ.J\"] = 3 * data[\"KDJ.K\"] - 2 * data[\"KDJ.D\"]\n",
    "    return data\n",
    "\n",
    "\n",
    "# 按股票代码分组计算KDJ\n",
    "for stock_code, group in df.groupby(\"StockCode\"):\n",
    "    kdj_data = calculate_kdj(group)\n",
    "    df.loc[kdj_data.index, [\"KDJ.K\", \"KDJ.D\", \"KDJ.J\"]] = kdj_data[\n",
    "        [\"KDJ.K\", \"KDJ.D\", \"KDJ.J\"]\n",
    "    ]\n",
    "\n",
    "\n",
    "# 计算MACD指标\n",
    "def calculate_macd(data, short_window=10, long_window=26, signal_window=9):\n",
    "    data = data.copy()\n",
    "    data[\"MACD.DIFF\"] = (\n",
    "        data[\"Close\"].ewm(span=short_window, adjust=False).mean()\n",
    "        - data[\"Close\"].ewm(span=long_window, adjust=False).mean()\n",
    "    )\n",
    "    data[\"MACD.DEA\"] = data[\"MACD.DIFF\"].ewm(span=signal_window, adjust=False).mean()\n",
    "    data[\"MACD.MACD\"] = 2 * (data[\"MACD.DIFF\"] - data[\"MACD.DEA\"])\n",
    "    return data\n",
    "\n",
    "\n",
    "# 按股票代码分组计算MACD\n",
    "for stock_code, group in df.groupby(\"StockCode\"):\n",
    "    macd_data = calculate_macd(group)\n",
    "    df.loc[macd_data.index, [\"MACD.DIFF\", \"MACD.DEA\", \"MACD.MACD\"]] = macd_data[\n",
    "        [\"MACD.DIFF\", \"MACD.DEA\", \"MACD.MACD\"]\n",
    "    ]\n",
    "\n",
    "\n",
    "# 计算CCI指标\n",
    "def calculate_cci(data, n=10):\n",
    "    data = data.copy()\n",
    "    tp = (data[\"High\"] + data[\"Low\"] + data[\"Close\"]) / 3\n",
    "    ma = tp.rolling(window=n, min_periods=1).mean()\n",
    "    md = tp.rolling(window=n, min_periods=1).apply(lambda x: abs(x - x.mean()).mean())\n",
    "    data[\"CCI.CCI\"] = (tp - ma) / (0.015 * md)\n",
    "    return data\n",
    "\n",
    "\n",
    "# 按股票代码分组计算CCI\n",
    "for stock_code, group in df.groupby(\"StockCode\"):\n",
    "    cci_data = calculate_cci(group)\n",
    "    df.loc[cci_data.index, [\"CCI.CCI\"]] = cci_data[[\"CCI.CCI\"]]\n",
    "\n",
    "# 填充NaN值\n",
    "df.fillna(method=\"bfill\", inplace=True)\n",
    "df.fillna(method=\"ffill\", inplace=True)\n",
    "df.fillna(0, inplace=True)\n",
    "\n",
    "# 显示添加技术指标后的数据预览\n",
    "print(\"添加技术指标后的特征数量:\", len(df.columns))\n",
    "print(\"新增技术指标列:\", df.columns[-13:].tolist())\n",
    "df.head(3)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c38d96dd",
   "metadata": {},
   "source": [
    "## 模型构建"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "2a8b19f0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "模型定义完成！\n"
     ]
    }
   ],
   "source": [
    "class IndRNNCell(nn.Module):\n",
    "    \"\"\"\n",
    "    Independent RNN Cell\n",
    "    IndRNN的核心思想是每个隐藏单元只依赖于自身的前一时刻状态和当前输入\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, input_size, hidden_size):\n",
    "        super(IndRNNCell, self).__init__()\n",
    "        self.input_size = input_size\n",
    "        self.hidden_size = hidden_size\n",
    "\n",
    "        # 输入到隐藏层的权重\n",
    "        self.weight_ih = nn.Parameter(torch.randn(hidden_size, input_size))\n",
    "        # 隐藏状态的递归权重（对角矩阵，每个神经元独立）\n",
    "        self.weight_hh = nn.Parameter(torch.randn(hidden_size))\n",
    "        # 偏置\n",
    "        self.bias = nn.Parameter(torch.randn(hidden_size))\n",
    "\n",
    "        self.reset_parameters()\n",
    "\n",
    "    def reset_parameters(self):\n",
    "        \"\"\"初始化参数\"\"\"\n",
    "        std = 1.0 / np.sqrt(self.hidden_size)\n",
    "        for weight in self.parameters():\n",
    "            weight.data.uniform_(-std, std)\n",
    "\n",
    "    def forward(self, input, hidden):\n",
    "        \"\"\"\n",
    "        前向传播\n",
    "        Args:\n",
    "            input: (batch_size, input_size)\n",
    "            hidden: (batch_size, hidden_size)\n",
    "        Returns:\n",
    "            new_hidden: (batch_size, hidden_size)\n",
    "        \"\"\"\n",
    "        # 计算输入部分：W_ih * x_t\n",
    "        input_part = torch.mm(input, self.weight_ih.t())\n",
    "\n",
    "        # 计算隐藏状态部分：W_hh * h_{t-1} (element-wise multiplication)\n",
    "        hidden_part = hidden * self.weight_hh\n",
    "\n",
    "        # 计算新的隐藏状态：ReLU(W_ih * x_t + W_hh * h_{t-1} + b) 替换原来的tanh\n",
    "        new_hidden = torch.relu(input_part + hidden_part + self.bias)\n",
    "\n",
    "        return new_hidden\n",
    "\n",
    "\n",
    "class IndRNN(nn.Module):\n",
    "    \"\"\"\n",
    "    Independent RNN层\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(self, input_size, hidden_size, num_layers=1, dropout=0.0):\n",
    "        super(IndRNN, self).__init__()\n",
    "        self.input_size = input_size\n",
    "        self.hidden_size = hidden_size\n",
    "        self.num_layers = num_layers\n",
    "        self.dropout = dropout\n",
    "\n",
    "        # 创建多层IndRNN\n",
    "        self.cells = nn.ModuleList()\n",
    "        for i in range(num_layers):\n",
    "            layer_input_size = input_size if i == 0 else hidden_size\n",
    "            self.cells.append(IndRNNCell(layer_input_size, hidden_size))\n",
    "\n",
    "        # Dropout层\n",
    "        if dropout > 0:\n",
    "            self.dropout_layer = nn.Dropout(dropout)\n",
    "        else:\n",
    "            self.dropout_layer = None\n",
    "\n",
    "    def forward(self, input, hidden=None):\n",
    "        \"\"\"\n",
    "        前向传播\n",
    "        Args:\n",
    "            input: (batch_size, seq_len, input_size)\n",
    "            hidden: 初始隐藏状态\n",
    "        Returns:\n",
    "            output: (batch_size, seq_len, hidden_size)\n",
    "            hidden: 最终隐藏状态\n",
    "        \"\"\"\n",
    "        batch_size, seq_len, _ = input.size()\n",
    "\n",
    "        if hidden is None:\n",
    "            hidden = [\n",
    "                torch.zeros(batch_size, self.hidden_size).to(input.device)\n",
    "                for _ in range(self.num_layers)\n",
    "            ]\n",
    "\n",
    "        outputs = []\n",
    "\n",
    "        for t in range(seq_len):\n",
    "            x = input[:, t, :]\n",
    "\n",
    "            for layer in range(self.num_layers):\n",
    "                x = self.cells[layer](x, hidden[layer])\n",
    "                hidden[layer] = x\n",
    "\n",
    "                # 应用dropout（除了最后一层）\n",
    "                if self.dropout_layer is not None and layer < self.num_layers - 1:\n",
    "                    x = self.dropout_layer(x)\n",
    "\n",
    "            outputs.append(x)\n",
    "\n",
    "        # 堆叠输出\n",
    "        output = torch.stack(outputs, dim=1)\n",
    "\n",
    "        return output, hidden\n",
    "\n",
    "\n",
    "class IndRNNLSTMModel(nn.Module):\n",
    "    \"\"\"\n",
    "    IndRNN-LSTM混合模型\n",
    "    先使用IndRNN处理输入序列，然后使用LSTM进行进一步的时序建模\n",
    "    \"\"\"\n",
    "\n",
    "    def __init__(\n",
    "        self,\n",
    "        input_size,\n",
    "        indrnn_hidden_size,\n",
    "        lstm_hidden_size,\n",
    "        num_indrnn_layers=1,\n",
    "        num_lstm_layers=1,\n",
    "        output_size=1,\n",
    "        dropout=0.2,\n",
    "    ):\n",
    "        super(IndRNNLSTMModel, self).__init__()\n",
    "\n",
    "        self.input_size = input_size\n",
    "        self.indrnn_hidden_size = indrnn_hidden_size\n",
    "        self.lstm_hidden_size = lstm_hidden_size\n",
    "        self.num_indrnn_layers = num_indrnn_layers\n",
    "        self.num_lstm_layers = num_lstm_layers\n",
    "        self.output_size = output_size\n",
    "\n",
    "        # IndRNN层\n",
    "        self.indrnn = IndRNN(\n",
    "            input_size=input_size,\n",
    "            hidden_size=indrnn_hidden_size,\n",
    "            num_layers=num_indrnn_layers,\n",
    "            dropout=dropout,\n",
    "        )\n",
    "\n",
    "        # LSTM层\n",
    "        self.lstm = nn.LSTM(\n",
    "            input_size=indrnn_hidden_size,\n",
    "            hidden_size=lstm_hidden_size,\n",
    "            num_layers=num_lstm_layers,\n",
    "            batch_first=True,  # 保证输入形状为 (batch_size, seq_len, input_size)\n",
    "            dropout=dropout if num_lstm_layers > 1 else 0,\n",
    "        )\n",
    "\n",
    "        # Dropout层\n",
    "        self.dropout = nn.Dropout(dropout)\n",
    "\n",
    "        # 输出层\n",
    "        self.fc = nn.Linear(lstm_hidden_size, output_size)\n",
    "\n",
    "    def forward(self, x):\n",
    "        \"\"\"\n",
    "        前向传播\n",
    "        Args:\n",
    "            x: (batch_size, seq_len, input_size)\n",
    "        Returns:\n",
    "            output: (batch_size, output_size)\n",
    "        \"\"\"\n",
    "        # IndRNN处理\n",
    "        indrnn_out, _ = self.indrnn(x)\n",
    "\n",
    "        # LSTM处理\n",
    "        lstm_out, _ = self.lstm(indrnn_out)\n",
    "\n",
    "        # 取最后一个时间步的输出\n",
    "        last_output = lstm_out[:, -1, :]\n",
    "\n",
    "        # Dropout\n",
    "        last_output = self.dropout(last_output)\n",
    "\n",
    "        # 全连接层输出\n",
    "        output = self.fc(last_output)\n",
    "\n",
    "        return output\n",
    "\n",
    "\n",
    "print(\"模型定义完成！\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "89af7da8",
   "metadata": {},
   "source": [
    "## 数据集类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "bdb5b6cc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据集类定义完成！\n"
     ]
    }
   ],
   "source": [
    "class StockDataset(Dataset):\n",
    "    def __init__(self, df, seq_length, features):\n",
    "        self.df = df\n",
    "        self.seq_length = seq_length\n",
    "        self.features = features\n",
    "\n",
    "        if \"Date\" in df.columns:\n",
    "            self.df = self.df.sort_values(\"Date\").reset_index(drop=True)\n",
    "\n",
    "        self.data = self.df[features].values\n",
    "        self.targets = self.df[\"Close\"].values\n",
    "\n",
    "        total_samples = len(self.df) - seq_length\n",
    "        train_size = int(total_samples)\n",
    "        self.start_idx = 0\n",
    "        self.end_idx = train_size\n",
    "\n",
    "    def __len__(self):\n",
    "        return self.end_idx - self.start_idx\n",
    "\n",
    "    def __getitem__(self, idx):\n",
    "        actual_idx = self.start_idx + idx\n",
    "\n",
    "        X = self.data[actual_idx : actual_idx + self.seq_length]\n",
    "        y = self.targets[actual_idx + self.seq_length]\n",
    "\n",
    "        X = torch.tensor(X, dtype=torch.float32)\n",
    "        y = torch.tensor(y, dtype=torch.float32)\n",
    "\n",
    "        return X, y\n",
    "\n",
    "\n",
    "print(\"数据集类定义完成！\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "59a83d58",
   "metadata": {},
   "source": [
    "## 每个股票单独训练模型"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "59521af6",
   "metadata": {},
   "source": [
    "### 加权平均MSE计算公式\n",
    "\n",
    "为了更准确地评估整体模型性能，我们将按照每个股票的数据点数量进行加权平均：\n",
    "\n",
    "$$\\text{总体MSE} = \\frac{\\sum_{i=1}^N n_i \\cdot \\text{MSE}_i}{\\sum_{i=1}^N n_i}$$\n",
    "\n",
    "其中：\n",
    "- $N$ 是股票总数\n",
    "- $n_i$ 是第 $i$ 支股票的数据点数量  \n",
    "- $\\text{MSE}_i$ 是第 $i$ 支股票模型的MSE损失\n",
    "\n",
    "这种方法能够确保数据量大的股票在总体评估中有更大的权重，更准确地反映模型的整体性能。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "b82789fd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "总共有 300 支股票需要训练\n",
      "\n",
      "==================================================\n",
      "训练股票 600000 (1/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 13.485642\n",
      "  Epoch 1/20, Loss: 13.485642\n",
      "  Epoch 2/20, Loss: 3.129716\n",
      "  Epoch 2/20, Loss: 3.129716\n",
      "  Epoch 4/20, Loss: 2.902206\n",
      "  Epoch 4/20, Loss: 2.902206\n",
      "  Epoch 6/20, Loss: 1.749748\n",
      "  Epoch 6/20, Loss: 1.749748\n",
      "  Epoch 8/20, Loss: 0.404655\n",
      "  Epoch 8/20, Loss: 0.404655\n",
      "  Epoch 10/20, Loss: 0.226237\n",
      "  Epoch 10/20, Loss: 0.226237\n",
      "  Epoch 12/20, Loss: 0.212862\n",
      "  Epoch 12/20, Loss: 0.212862\n",
      "  Epoch 14/20, Loss: 0.212986\n",
      "  Epoch 14/20, Loss: 0.212986\n",
      "  Epoch 16/20, Loss: 0.207157\n",
      "  Epoch 16/20, Loss: 0.207157\n",
      "  Epoch 18/20, Loss: 0.195372\n",
      "  Epoch 18/20, Loss: 0.195372\n",
      "  Epoch 20/20, Loss: 0.162527\n",
      "股票 600000 训练完成，最佳损失: 0.162527\n",
      "数据点数量: 2390, 模型保存至: ./../../model\\model_600000.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600009 (2/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.162527\n",
      "股票 600000 训练完成，最佳损失: 0.162527\n",
      "数据点数量: 2390, 模型保存至: ./../../model\\model_600000.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600009 (2/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1512.810516\n",
      "  Epoch 1/20, Loss: 1512.810516\n",
      "  Epoch 2/20, Loss: 989.829591\n",
      "  Epoch 2/20, Loss: 989.829591\n",
      "  Epoch 4/20, Loss: 494.031542\n",
      "  Epoch 4/20, Loss: 494.031542\n",
      "  Epoch 6/20, Loss: 335.888829\n",
      "  Epoch 6/20, Loss: 335.888829\n",
      "  Epoch 8/20, Loss: 298.760748\n",
      "  Epoch 8/20, Loss: 298.760748\n",
      "  Epoch 10/20, Loss: 291.116938\n",
      "  Epoch 10/20, Loss: 291.116938\n",
      "  Epoch 12/20, Loss: 290.334641\n",
      "  Epoch 12/20, Loss: 290.334641\n",
      "  Epoch 14/20, Loss: 292.768904\n",
      "  Epoch 14/20, Loss: 292.768904\n",
      "  Epoch 16/20, Loss: 291.677300\n",
      "  Epoch 16/20, Loss: 291.677300\n",
      "  Epoch 18/20, Loss: 292.890028\n",
      "  Epoch 18/20, Loss: 292.890028\n",
      "  Epoch 20/20, Loss: 293.746950\n",
      "股票 600009 训练完成，最佳损失: 289.856155\n",
      "数据点数量: 2411, 模型保存至: ./../../model\\model_600009.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600010 (3/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 293.746950\n",
      "股票 600009 训练完成，最佳损失: 289.856155\n",
      "数据点数量: 2411, 模型保存至: ./../../model\\model_600009.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600010 (3/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.145353\n",
      "  Epoch 1/20, Loss: 1.145353\n",
      "  Epoch 2/20, Loss: 0.121216\n",
      "  Epoch 2/20, Loss: 0.121216\n",
      "  Epoch 4/20, Loss: 0.118528\n",
      "  Epoch 4/20, Loss: 0.118528\n",
      "  Epoch 6/20, Loss: 0.039351\n",
      "  Epoch 6/20, Loss: 0.039351\n",
      "  Epoch 8/20, Loss: 0.091623\n",
      "  Epoch 8/20, Loss: 0.091623\n",
      "  Epoch 10/20, Loss: 0.081297\n",
      "  Epoch 10/20, Loss: 0.081297\n",
      "  Epoch 12/20, Loss: 0.038920\n",
      "  Epoch 12/20, Loss: 0.038920\n",
      "  Epoch 14/20, Loss: 0.062168\n",
      "  Epoch 14/20, Loss: 0.062168\n",
      "  Epoch 16/20, Loss: 0.096808\n",
      "  Epoch 16/20, Loss: 0.096808\n",
      "  Epoch 18/20, Loss: 0.045642\n",
      "  Epoch 18/20, Loss: 0.045642\n",
      "  Epoch 20/20, Loss: 0.057169\n",
      "股票 600010 训练完成，最佳损失: 0.038920\n",
      "数据点数量: 2413, 模型保存至: ./../../model\\model_600010.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600011 (4/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.057169\n",
      "股票 600010 训练完成，最佳损失: 0.038920\n",
      "数据点数量: 2413, 模型保存至: ./../../model\\model_600010.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600011 (4/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 10.496287\n",
      "  Epoch 1/20, Loss: 10.496287\n",
      "  Epoch 2/20, Loss: 3.408302\n",
      "  Epoch 2/20, Loss: 3.408302\n",
      "  Epoch 4/20, Loss: 3.239275\n",
      "  Epoch 4/20, Loss: 3.239275\n",
      "  Epoch 6/20, Loss: 3.279188\n",
      "  Epoch 6/20, Loss: 3.279188\n",
      "  Epoch 8/20, Loss: 3.298161\n",
      "  Epoch 8/20, Loss: 3.298161\n",
      "  Epoch 10/20, Loss: 3.352146\n",
      "  Epoch 10/20, Loss: 3.352146\n",
      "  Epoch 12/20, Loss: 3.239508\n",
      "  Epoch 12/20, Loss: 3.239508\n",
      "  Epoch 14/20, Loss: 2.690911\n",
      "  Epoch 14/20, Loss: 2.690911\n",
      "  Epoch 16/20, Loss: 1.197716\n",
      "  Epoch 16/20, Loss: 1.197716\n",
      "  Epoch 18/20, Loss: 1.080003\n",
      "  Epoch 18/20, Loss: 1.080003\n",
      "  Epoch 20/20, Loss: 1.079426\n",
      "股票 600011 训练完成，最佳损失: 1.079426\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600011.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600015 (5/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.079426\n",
      "股票 600011 训练完成，最佳损失: 1.079426\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600011.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600015 (5/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6.554949\n",
      "  Epoch 1/20, Loss: 6.554949\n",
      "  Epoch 2/20, Loss: 2.746647\n",
      "  Epoch 2/20, Loss: 2.746647\n",
      "  Epoch 4/20, Loss: 0.761797\n",
      "  Epoch 4/20, Loss: 0.761797\n",
      "  Epoch 6/20, Loss: 0.588445\n",
      "  Epoch 6/20, Loss: 0.588445\n",
      "  Epoch 8/20, Loss: 0.451357\n",
      "  Epoch 8/20, Loss: 0.451357\n",
      "  Epoch 10/20, Loss: 0.385518\n",
      "  Epoch 10/20, Loss: 0.385518\n",
      "  Epoch 12/20, Loss: 0.270954\n",
      "  Epoch 12/20, Loss: 0.270954\n",
      "  Epoch 14/20, Loss: 0.254827\n",
      "  Epoch 14/20, Loss: 0.254827\n",
      "  Epoch 16/20, Loss: 0.244473\n",
      "  Epoch 16/20, Loss: 0.244473\n",
      "  Epoch 18/20, Loss: 0.210541\n",
      "  Epoch 18/20, Loss: 0.210541\n",
      "  Epoch 20/20, Loss: 0.168663\n",
      "股票 600015 训练完成，最佳损失: 0.168663\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600015.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600016 (6/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.168663\n",
      "股票 600015 训练完成，最佳损失: 0.168663\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600015.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600016 (6/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3.308756\n",
      "  Epoch 1/20, Loss: 3.308756\n",
      "  Epoch 2/20, Loss: 0.412679\n",
      "  Epoch 2/20, Loss: 0.412679\n",
      "  Epoch 4/20, Loss: 0.492872\n",
      "  Epoch 4/20, Loss: 0.492872\n",
      "  Epoch 6/20, Loss: 0.303005\n",
      "  Epoch 6/20, Loss: 0.303005\n",
      "  Epoch 8/20, Loss: 0.138502\n",
      "  Epoch 8/20, Loss: 0.138502\n",
      "  Epoch 10/20, Loss: 0.092388\n",
      "  Epoch 10/20, Loss: 0.092388\n",
      "  Epoch 12/20, Loss: 0.095189\n",
      "  Epoch 12/20, Loss: 0.095189\n",
      "  Epoch 14/20, Loss: 0.088578\n",
      "  Epoch 14/20, Loss: 0.088578\n",
      "  Epoch 16/20, Loss: 0.158209\n",
      "  Epoch 16/20, Loss: 0.158209\n",
      "  Epoch 18/20, Loss: 0.113007\n",
      "  Epoch 18/20, Loss: 0.113007\n",
      "  Epoch 20/20, Loss: 0.106435\n",
      "股票 600016 训练完成，最佳损失: 0.077239\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600016.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600018 (7/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.106435\n",
      "股票 600016 训练完成，最佳损失: 0.077239\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600016.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600018 (7/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4.031944\n",
      "  Epoch 1/20, Loss: 4.031944\n",
      "  Epoch 2/20, Loss: 1.362983\n",
      "  Epoch 2/20, Loss: 1.362983\n",
      "  Epoch 4/20, Loss: 1.106287\n",
      "  Epoch 4/20, Loss: 1.106287\n",
      "  Epoch 6/20, Loss: 0.318246\n",
      "  Epoch 6/20, Loss: 0.318246\n",
      "  Epoch 8/20, Loss: 0.244394\n",
      "  Epoch 8/20, Loss: 0.244394\n",
      "  Epoch 10/20, Loss: 0.232148\n",
      "  Epoch 10/20, Loss: 0.232148\n",
      "  Epoch 12/20, Loss: 0.146931\n",
      "  Epoch 12/20, Loss: 0.146931\n",
      "  Epoch 14/20, Loss: 0.111899\n",
      "  Epoch 14/20, Loss: 0.111899\n",
      "  Epoch 16/20, Loss: 0.173664\n",
      "  Epoch 16/20, Loss: 0.173664\n",
      "  Epoch 18/20, Loss: 0.125329\n",
      "  Epoch 18/20, Loss: 0.125329\n",
      "  Epoch 20/20, Loss: 0.100571\n",
      "股票 600018 训练完成，最佳损失: 0.100571\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_600018.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600019 (8/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.100571\n",
      "股票 600018 训练完成，最佳损失: 0.100571\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_600018.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600019 (8/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3.265864\n",
      "  Epoch 1/20, Loss: 3.265864\n",
      "  Epoch 2/20, Loss: 2.044075\n",
      "  Epoch 2/20, Loss: 2.044075\n",
      "  Epoch 4/20, Loss: 0.401935\n",
      "  Epoch 4/20, Loss: 0.401935\n",
      "  Epoch 6/20, Loss: 0.345858\n",
      "  Epoch 6/20, Loss: 0.345858\n",
      "  Epoch 8/20, Loss: 0.315536\n",
      "  Epoch 8/20, Loss: 0.315536\n",
      "  Epoch 10/20, Loss: 0.166014\n",
      "  Epoch 10/20, Loss: 0.166014\n",
      "  Epoch 12/20, Loss: 0.146621\n",
      "  Epoch 12/20, Loss: 0.146621\n",
      "  Epoch 14/20, Loss: 0.213064\n",
      "  Epoch 14/20, Loss: 0.213064\n",
      "  Epoch 16/20, Loss: 0.290858\n",
      "  Epoch 16/20, Loss: 0.290858\n",
      "  Epoch 18/20, Loss: 0.455640\n",
      "  Epoch 18/20, Loss: 0.455640\n",
      "  Epoch 20/20, Loss: 0.231613\n",
      "股票 600019 训练完成，最佳损失: 0.146621\n",
      "数据点数量: 2330, 模型保存至: ./../../model\\model_600019.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600023 (9/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.231613\n",
      "股票 600019 训练完成，最佳损失: 0.146621\n",
      "数据点数量: 2330, 模型保存至: ./../../model\\model_600019.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600023 (9/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4.550109\n",
      "  Epoch 1/20, Loss: 4.550109\n",
      "  Epoch 2/20, Loss: 1.831630\n",
      "  Epoch 2/20, Loss: 1.831630\n",
      "  Epoch 4/20, Loss: 1.006296\n",
      "  Epoch 4/20, Loss: 1.006296\n",
      "  Epoch 6/20, Loss: 0.392886\n",
      "  Epoch 6/20, Loss: 0.392886\n",
      "  Epoch 8/20, Loss: 0.241378\n",
      "  Epoch 8/20, Loss: 0.241378\n",
      "  Epoch 10/20, Loss: 0.207567\n",
      "  Epoch 10/20, Loss: 0.207567\n",
      "  Epoch 12/20, Loss: 0.317338\n",
      "  Epoch 12/20, Loss: 0.317338\n",
      "  Epoch 14/20, Loss: 0.468624\n",
      "  Epoch 14/20, Loss: 0.468624\n",
      "  Epoch 16/20, Loss: 0.381621\n",
      "  Epoch 16/20, Loss: 0.381621\n",
      "  Epoch 18/20, Loss: 0.297892\n",
      "  Epoch 18/20, Loss: 0.297892\n",
      "  Epoch 20/20, Loss: 0.231285\n",
      "股票 600023 训练完成，最佳损失: 0.207567\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600023.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600025 (10/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.231285\n",
      "股票 600023 训练完成，最佳损失: 0.207567\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600023.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600025 (10/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2.294719\n",
      "  Epoch 1/20, Loss: 2.294719\n",
      "  Epoch 2/20, Loss: 17.524350\n",
      "  Epoch 2/20, Loss: 17.524350\n",
      "  Epoch 4/20, Loss: 2.201718\n",
      "  Epoch 4/20, Loss: 2.201718\n",
      "  Epoch 6/20, Loss: 2.125432\n",
      "  Epoch 6/20, Loss: 2.125432\n",
      "  Epoch 8/20, Loss: 1.979724\n",
      "  Epoch 8/20, Loss: 1.979724\n",
      "  Epoch 10/20, Loss: 1.622918\n",
      "  Epoch 10/20, Loss: 1.622918\n",
      "  Epoch 12/20, Loss: 0.679913\n",
      "  Epoch 12/20, Loss: 0.679913\n",
      "  Epoch 14/20, Loss: 0.416844\n",
      "  Epoch 14/20, Loss: 0.416844\n",
      "  Epoch 16/20, Loss: 0.728001\n",
      "  Epoch 16/20, Loss: 0.728001\n",
      "  Epoch 18/20, Loss: 0.529656\n",
      "  Epoch 18/20, Loss: 0.529656\n",
      "  Epoch 20/20, Loss: 0.666785\n",
      "股票 600025 训练完成，最佳损失: 0.380435\n",
      "数据点数量: 1770, 模型保存至: ./../../model\\model_600025.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600026 (11/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.666785\n",
      "股票 600025 训练完成，最佳损失: 0.380435\n",
      "数据点数量: 1770, 模型保存至: ./../../model\\model_600025.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600026 (11/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 22.278180\n",
      "  Epoch 1/20, Loss: 22.278180\n",
      "  Epoch 2/20, Loss: 19.069411\n",
      "  Epoch 2/20, Loss: 19.069411\n",
      "  Epoch 4/20, Loss: 10.558121\n",
      "  Epoch 4/20, Loss: 10.558121\n",
      "  Epoch 6/20, Loss: 4.062516\n",
      "  Epoch 6/20, Loss: 4.062516\n",
      "  Epoch 8/20, Loss: 3.517300\n",
      "  Epoch 8/20, Loss: 3.517300\n",
      "  Epoch 10/20, Loss: 2.878293\n",
      "  Epoch 10/20, Loss: 2.878293\n",
      "  Epoch 12/20, Loss: 2.275057\n",
      "  Epoch 12/20, Loss: 2.275057\n",
      "  Epoch 14/20, Loss: 1.898587\n",
      "  Epoch 14/20, Loss: 1.898587\n",
      "  Epoch 16/20, Loss: 1.787261\n",
      "  Epoch 16/20, Loss: 1.787261\n",
      "  Epoch 18/20, Loss: 1.398071\n",
      "  Epoch 18/20, Loss: 1.398071\n",
      "  Epoch 20/20, Loss: 1.259280\n",
      "股票 600026 训练完成，最佳损失: 1.259280\n",
      "数据点数量: 2324, 模型保存至: ./../../model\\model_600026.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600027 (12/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.259280\n",
      "股票 600026 训练完成，最佳损失: 1.259280\n",
      "数据点数量: 2324, 模型保存至: ./../../model\\model_600026.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600027 (12/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4.071985\n",
      "  Epoch 1/20, Loss: 4.071985\n",
      "  Epoch 2/20, Loss: 1.258962\n",
      "  Epoch 2/20, Loss: 1.258962\n",
      "  Epoch 4/20, Loss: 0.517920\n",
      "  Epoch 4/20, Loss: 0.517920\n",
      "  Epoch 6/20, Loss: 0.383624\n",
      "  Epoch 6/20, Loss: 0.383624\n",
      "  Epoch 8/20, Loss: 0.254168\n",
      "  Epoch 8/20, Loss: 0.254168\n",
      "  Epoch 10/20, Loss: 0.433676\n",
      "  Epoch 10/20, Loss: 0.433676\n",
      "  Epoch 12/20, Loss: 0.419517\n",
      "  Epoch 12/20, Loss: 0.419517\n",
      "  Epoch 14/20, Loss: 0.284856\n",
      "  Epoch 14/20, Loss: 0.284856\n",
      "  Epoch 16/20, Loss: 0.189407\n",
      "  Epoch 16/20, Loss: 0.189407\n",
      "  Epoch 18/20, Loss: 0.327722\n",
      "  Epoch 18/20, Loss: 0.327722\n",
      "  Epoch 20/20, Loss: 0.309211\n",
      "股票 600027 训练完成，最佳损失: 0.189407\n",
      "数据点数量: 2411, 模型保存至: ./../../model\\model_600027.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600028 (13/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.309211\n",
      "股票 600027 训练完成，最佳损失: 0.189407\n",
      "数据点数量: 2411, 模型保存至: ./../../model\\model_600027.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600028 (13/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.625874\n",
      "  Epoch 1/20, Loss: 1.625874\n",
      "  Epoch 2/20, Loss: 3.601282\n",
      "  Epoch 2/20, Loss: 3.601282\n",
      "  Epoch 4/20, Loss: 0.405853\n",
      "  Epoch 4/20, Loss: 0.405853\n",
      "  Epoch 6/20, Loss: 0.589600\n",
      "  Epoch 6/20, Loss: 0.589600\n",
      "  Epoch 8/20, Loss: 0.657659\n",
      "  Epoch 8/20, Loss: 0.657659\n",
      "  Epoch 10/20, Loss: 0.104775\n",
      "  Epoch 10/20, Loss: 0.104775\n",
      "  Epoch 12/20, Loss: 0.092632\n",
      "  Epoch 12/20, Loss: 0.092632\n",
      "  Epoch 14/20, Loss: 0.094990\n",
      "  Epoch 14/20, Loss: 0.094990\n",
      "  Epoch 16/20, Loss: 0.088536\n",
      "  Epoch 16/20, Loss: 0.088536\n",
      "  Epoch 18/20, Loss: 0.104774\n",
      "  Epoch 18/20, Loss: 0.104774\n",
      "  Epoch 20/20, Loss: 0.103623\n",
      "股票 600028 训练完成，最佳损失: 0.080396\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600028.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600029 (14/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.103623\n",
      "股票 600028 训练完成，最佳损失: 0.080396\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600028.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600029 (14/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 11.380290\n",
      "  Epoch 1/20, Loss: 11.380290\n",
      "  Epoch 2/20, Loss: 3.538425\n",
      "  Epoch 2/20, Loss: 3.538425\n",
      "  Epoch 4/20, Loss: 3.164671\n",
      "  Epoch 4/20, Loss: 3.164671\n",
      "  Epoch 6/20, Loss: 3.190498\n",
      "  Epoch 6/20, Loss: 3.190498\n",
      "  Epoch 8/20, Loss: 3.002008\n",
      "  Epoch 8/20, Loss: 3.002008\n",
      "  Epoch 10/20, Loss: 2.146886\n",
      "  Epoch 10/20, Loss: 2.146886\n",
      "  Epoch 12/20, Loss: 1.181428\n",
      "  Epoch 12/20, Loss: 1.181428\n",
      "  Epoch 14/20, Loss: 0.878820\n",
      "  Epoch 14/20, Loss: 0.878820\n",
      "  Epoch 16/20, Loss: 0.670628\n",
      "  Epoch 16/20, Loss: 0.670628\n",
      "  Epoch 18/20, Loss: 0.557951\n",
      "  Epoch 18/20, Loss: 0.557951\n",
      "  Epoch 20/20, Loss: 0.477329\n",
      "股票 600029 训练完成，最佳损失: 0.477329\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_600029.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600030 (15/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.477329\n",
      "股票 600029 训练完成，最佳损失: 0.477329\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_600029.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600030 (15/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 83.591443\n",
      "  Epoch 1/20, Loss: 83.591443\n",
      "  Epoch 2/20, Loss: 21.379396\n",
      "  Epoch 2/20, Loss: 21.379396\n",
      "  Epoch 4/20, Loss: 26.040013\n",
      "  Epoch 4/20, Loss: 26.040013\n",
      "  Epoch 6/20, Loss: 26.211465\n",
      "  Epoch 6/20, Loss: 26.211465\n",
      "  Epoch 8/20, Loss: 26.075597\n",
      "  Epoch 8/20, Loss: 26.075597\n",
      "  Epoch 10/20, Loss: 26.246142\n",
      "  Epoch 10/20, Loss: 26.246142\n",
      "  Epoch 12/20, Loss: 26.014682\n",
      "  Epoch 12/20, Loss: 26.014682\n",
      "  Epoch 14/20, Loss: 26.297183\n",
      "  Epoch 14/20, Loss: 26.297183\n",
      "  Epoch 16/20, Loss: 26.066141\n",
      "  Epoch 16/20, Loss: 26.066141\n",
      "  Epoch 18/20, Loss: 26.342377\n",
      "  Epoch 18/20, Loss: 26.342377\n",
      "  Epoch 20/20, Loss: 26.399461\n",
      "股票 600030 训练完成，最佳损失: 21.379396\n",
      "数据点数量: 2405, 模型保存至: ./../../model\\model_600030.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600031 (16/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 26.399461\n",
      "股票 600030 训练完成，最佳损失: 21.379396\n",
      "数据点数量: 2405, 模型保存至: ./../../model\\model_600030.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600031 (16/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 74.241510\n",
      "  Epoch 1/20, Loss: 74.241510\n",
      "  Epoch 2/20, Loss: 75.436434\n",
      "  Epoch 2/20, Loss: 75.436434\n",
      "  Epoch 4/20, Loss: 81.872326\n",
      "  Epoch 4/20, Loss: 81.872326\n",
      "  Epoch 6/20, Loss: 34.841909\n",
      "  Epoch 6/20, Loss: 34.841909\n",
      "  Epoch 8/20, Loss: 29.056551\n",
      "  Epoch 8/20, Loss: 29.056551\n",
      "  Epoch 10/20, Loss: 27.986192\n",
      "  Epoch 10/20, Loss: 27.986192\n",
      "  Epoch 12/20, Loss: 21.118446\n",
      "  Epoch 12/20, Loss: 21.118446\n",
      "  Epoch 14/20, Loss: 19.876378\n",
      "  Epoch 14/20, Loss: 19.876378\n",
      "  Epoch 16/20, Loss: 14.858211\n",
      "  Epoch 16/20, Loss: 14.858211\n",
      "  Epoch 18/20, Loss: 11.086553\n",
      "  Epoch 18/20, Loss: 11.086553\n",
      "  Epoch 20/20, Loss: 8.784473\n",
      "股票 600031 训练完成，最佳损失: 8.784473\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_600031.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600036 (17/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 8.784473\n",
      "股票 600031 训练完成，最佳损失: 8.784473\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_600031.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600036 (17/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 323.933515\n",
      "  Epoch 1/20, Loss: 323.933515\n",
      "  Epoch 2/20, Loss: 190.352771\n",
      "  Epoch 2/20, Loss: 190.352771\n",
      "  Epoch 4/20, Loss: 163.397080\n",
      "  Epoch 4/20, Loss: 163.397080\n",
      "  Epoch 6/20, Loss: 168.456498\n",
      "  Epoch 6/20, Loss: 168.456498\n",
      "  Epoch 8/20, Loss: 169.421661\n",
      "  Epoch 8/20, Loss: 169.421661\n",
      "  Epoch 10/20, Loss: 169.902172\n",
      "  Epoch 10/20, Loss: 169.902172\n",
      "  Epoch 12/20, Loss: 169.077351\n",
      "  Epoch 12/20, Loss: 169.077351\n",
      "  Epoch 14/20, Loss: 169.979473\n",
      "  Epoch 14/20, Loss: 169.979473\n",
      "  Epoch 16/20, Loss: 169.066384\n",
      "  Epoch 16/20, Loss: 169.066384\n",
      "  Epoch 18/20, Loss: 170.119623\n",
      "  Epoch 18/20, Loss: 170.119623\n",
      "  Epoch 20/20, Loss: 169.795864\n",
      "股票 600036 训练完成，最佳损失: 163.397080\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600036.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600039 (18/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 169.795864\n",
      "股票 600036 训练完成，最佳损失: 163.397080\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600036.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600039 (18/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3.885041\n",
      "  Epoch 1/20, Loss: 3.885041\n",
      "  Epoch 2/20, Loss: 12.393198\n",
      "  Epoch 2/20, Loss: 12.393198\n",
      "  Epoch 4/20, Loss: 0.598490\n",
      "  Epoch 4/20, Loss: 0.598490\n",
      "  Epoch 6/20, Loss: 0.627866\n",
      "  Epoch 6/20, Loss: 0.627866\n",
      "  Epoch 8/20, Loss: 0.653499\n",
      "  Epoch 8/20, Loss: 0.653499\n",
      "  Epoch 10/20, Loss: 0.543194\n",
      "  Epoch 10/20, Loss: 0.543194\n",
      "  Epoch 12/20, Loss: 0.532595\n",
      "  Epoch 12/20, Loss: 0.532595\n",
      "  Epoch 14/20, Loss: 0.346403\n",
      "  Epoch 14/20, Loss: 0.346403\n",
      "  Epoch 16/20, Loss: 0.295643\n",
      "  Epoch 16/20, Loss: 0.295643\n",
      "  Epoch 18/20, Loss: 0.460395\n",
      "  Epoch 18/20, Loss: 0.460395\n",
      "  Epoch 20/20, Loss: 0.490708\n",
      "股票 600039 训练完成，最佳损失: 0.295643\n",
      "数据点数量: 2400, 模型保存至: ./../../model\\model_600039.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600048 (19/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.490708\n",
      "股票 600039 训练完成，最佳损失: 0.295643\n",
      "数据点数量: 2400, 模型保存至: ./../../model\\model_600039.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600048 (19/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 9.798659\n",
      "  Epoch 1/20, Loss: 9.798659\n",
      "  Epoch 2/20, Loss: 20.537721\n",
      "  Epoch 2/20, Loss: 20.537721\n",
      "  Epoch 4/20, Loss: 16.038979\n",
      "  Epoch 4/20, Loss: 16.038979\n",
      "  Epoch 6/20, Loss: 15.808485\n",
      "  Epoch 6/20, Loss: 15.808485\n",
      "  Epoch 8/20, Loss: 15.885885\n",
      "  Epoch 8/20, Loss: 15.885885\n",
      "  Epoch 10/20, Loss: 15.965905\n",
      "  Epoch 10/20, Loss: 15.965905\n",
      "  Epoch 12/20, Loss: 15.903653\n",
      "  Epoch 12/20, Loss: 15.903653\n",
      "  Epoch 14/20, Loss: 15.958858\n",
      "  Epoch 14/20, Loss: 15.958858\n",
      "  Epoch 16/20, Loss: 15.866680\n",
      "  Epoch 16/20, Loss: 15.866680\n",
      "  Epoch 18/20, Loss: 15.896153\n",
      "  Epoch 18/20, Loss: 15.896153\n",
      "  Epoch 20/20, Loss: 15.936453\n",
      "股票 600048 训练完成，最佳损失: 9.798659\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_600048.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600050 (20/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 15.936453\n",
      "股票 600048 训练完成，最佳损失: 9.798659\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_600048.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600050 (20/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4.226085\n",
      "  Epoch 1/20, Loss: 4.226085\n",
      "  Epoch 2/20, Loss: 1.557976\n",
      "  Epoch 2/20, Loss: 1.557976\n",
      "  Epoch 4/20, Loss: 1.622074\n",
      "  Epoch 4/20, Loss: 1.622074\n",
      "  Epoch 6/20, Loss: 0.683995\n",
      "  Epoch 6/20, Loss: 0.683995\n",
      "  Epoch 8/20, Loss: 0.557470\n",
      "  Epoch 8/20, Loss: 0.557470\n",
      "  Epoch 10/20, Loss: 0.418751\n",
      "  Epoch 10/20, Loss: 0.418751\n",
      "  Epoch 12/20, Loss: 0.234825\n",
      "  Epoch 12/20, Loss: 0.234825\n",
      "  Epoch 14/20, Loss: 0.174550\n",
      "  Epoch 14/20, Loss: 0.174550\n",
      "  Epoch 16/20, Loss: 0.145623\n",
      "  Epoch 16/20, Loss: 0.145623\n",
      "  Epoch 18/20, Loss: 0.116298\n",
      "  Epoch 18/20, Loss: 0.116298\n",
      "  Epoch 20/20, Loss: 0.148627\n",
      "股票 600050 训练完成，最佳损失: 0.110262\n",
      "数据点数量: 2327, 模型保存至: ./../../model\\model_600050.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600061 (21/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.148627\n",
      "股票 600050 训练完成，最佳损失: 0.110262\n",
      "数据点数量: 2327, 模型保存至: ./../../model\\model_600050.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600061 (21/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 20.986621\n",
      "  Epoch 1/20, Loss: 20.986621\n",
      "  Epoch 2/20, Loss: 7.104210\n",
      "  Epoch 2/20, Loss: 7.104210\n",
      "  Epoch 4/20, Loss: 4.461158\n",
      "  Epoch 4/20, Loss: 4.461158\n",
      "  Epoch 6/20, Loss: 3.502089\n",
      "  Epoch 6/20, Loss: 3.502089\n",
      "  Epoch 8/20, Loss: 2.875892\n",
      "  Epoch 8/20, Loss: 2.875892\n",
      "  Epoch 10/20, Loss: 2.160554\n",
      "  Epoch 10/20, Loss: 2.160554\n",
      "  Epoch 12/20, Loss: 1.606707\n",
      "  Epoch 12/20, Loss: 1.606707\n",
      "  Epoch 14/20, Loss: 1.254212\n",
      "  Epoch 14/20, Loss: 1.254212\n",
      "  Epoch 16/20, Loss: 1.918217\n",
      "  Epoch 16/20, Loss: 1.918217\n",
      "  Epoch 18/20, Loss: 1.482346\n",
      "  Epoch 18/20, Loss: 1.482346\n",
      "  Epoch 20/20, Loss: 1.092687\n",
      "股票 600061 训练完成，最佳损失: 1.092687\n",
      "数据点数量: 2382, 模型保存至: ./../../model\\model_600061.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600066 (22/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.092687\n",
      "股票 600061 训练完成，最佳损失: 1.092687\n",
      "数据点数量: 2382, 模型保存至: ./../../model\\model_600061.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600066 (22/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 56.266339\n",
      "  Epoch 1/20, Loss: 56.266339\n",
      "  Epoch 2/20, Loss: 33.972398\n",
      "  Epoch 2/20, Loss: 33.972398\n",
      "  Epoch 4/20, Loss: 17.883732\n",
      "  Epoch 4/20, Loss: 17.883732\n",
      "  Epoch 6/20, Loss: 9.388658\n",
      "  Epoch 6/20, Loss: 9.388658\n",
      "  Epoch 8/20, Loss: 5.266339\n",
      "  Epoch 8/20, Loss: 5.266339\n",
      "  Epoch 10/20, Loss: 5.952945\n",
      "  Epoch 10/20, Loss: 5.952945\n",
      "  Epoch 12/20, Loss: 4.825880\n",
      "  Epoch 12/20, Loss: 4.825880\n",
      "  Epoch 14/20, Loss: 3.361648\n",
      "  Epoch 14/20, Loss: 3.361648\n",
      "  Epoch 16/20, Loss: 3.286029\n",
      "  Epoch 16/20, Loss: 3.286029\n",
      "  Epoch 18/20, Loss: 2.499484\n",
      "  Epoch 18/20, Loss: 2.499484\n",
      "  Epoch 20/20, Loss: 1.488974\n",
      "股票 600066 训练完成，最佳损失: 1.488974\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_600066.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600085 (23/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.488974\n",
      "股票 600066 训练完成，最佳损失: 1.488974\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_600066.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600085 (23/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 576.085584\n",
      "  Epoch 1/20, Loss: 576.085584\n",
      "  Epoch 2/20, Loss: 241.362517\n",
      "  Epoch 2/20, Loss: 241.362517\n",
      "  Epoch 4/20, Loss: 98.686084\n",
      "  Epoch 4/20, Loss: 98.686084\n",
      "  Epoch 6/20, Loss: 93.339933\n",
      "  Epoch 6/20, Loss: 93.339933\n",
      "  Epoch 8/20, Loss: 95.435920\n",
      "  Epoch 8/20, Loss: 95.435920\n",
      "  Epoch 10/20, Loss: 96.470814\n",
      "  Epoch 10/20, Loss: 96.470814\n",
      "  Epoch 12/20, Loss: 96.009754\n",
      "  Epoch 12/20, Loss: 96.009754\n",
      "  Epoch 14/20, Loss: 96.970459\n",
      "  Epoch 14/20, Loss: 96.970459\n",
      "  Epoch 16/20, Loss: 96.910613\n",
      "  Epoch 16/20, Loss: 96.910613\n",
      "  Epoch 18/20, Loss: 96.580670\n",
      "  Epoch 18/20, Loss: 96.580670\n",
      "  Epoch 20/20, Loss: 97.760954\n",
      "股票 600085 训练完成，最佳损失: 93.339933\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600085.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600089 (24/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 97.760954\n",
      "股票 600085 训练完成，最佳损失: 93.339933\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600085.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600089 (24/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 43.306064\n",
      "  Epoch 1/20, Loss: 43.306064\n",
      "  Epoch 2/20, Loss: 27.689597\n",
      "  Epoch 2/20, Loss: 27.689597\n",
      "  Epoch 4/20, Loss: 31.098599\n",
      "  Epoch 4/20, Loss: 31.098599\n",
      "  Epoch 6/20, Loss: 29.441340\n",
      "  Epoch 6/20, Loss: 29.441340\n",
      "  Epoch 8/20, Loss: 9.642469\n",
      "  Epoch 8/20, Loss: 9.642469\n",
      "  Epoch 10/20, Loss: 8.373565\n",
      "  Epoch 10/20, Loss: 8.373565\n",
      "  Epoch 12/20, Loss: 6.293211\n",
      "  Epoch 12/20, Loss: 6.293211\n",
      "  Epoch 14/20, Loss: 5.106046\n",
      "  Epoch 14/20, Loss: 5.106046\n",
      "  Epoch 16/20, Loss: 4.454042\n",
      "  Epoch 16/20, Loss: 4.454042\n",
      "  Epoch 18/20, Loss: 3.767901\n",
      "  Epoch 18/20, Loss: 3.767901\n",
      "  Epoch 20/20, Loss: 3.312223\n",
      "股票 600089 训练完成，最佳损失: 3.312223\n",
      "数据点数量: 2413, 模型保存至: ./../../model\\model_600089.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600104 (25/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 3.312223\n",
      "股票 600089 训练完成，最佳损失: 3.312223\n",
      "数据点数量: 2413, 模型保存至: ./../../model\\model_600089.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600104 (25/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 94.762327\n",
      "  Epoch 1/20, Loss: 94.762327\n",
      "  Epoch 2/20, Loss: 30.790396\n",
      "  Epoch 2/20, Loss: 30.790396\n",
      "  Epoch 4/20, Loss: 27.565781\n",
      "  Epoch 4/20, Loss: 27.565781\n",
      "  Epoch 6/20, Loss: 27.977826\n",
      "  Epoch 6/20, Loss: 27.977826\n",
      "  Epoch 8/20, Loss: 28.244640\n",
      "  Epoch 8/20, Loss: 28.244640\n",
      "  Epoch 10/20, Loss: 28.229018\n",
      "  Epoch 10/20, Loss: 28.229018\n",
      "  Epoch 12/20, Loss: 28.124767\n",
      "  Epoch 12/20, Loss: 28.124767\n",
      "  Epoch 14/20, Loss: 28.399388\n",
      "  Epoch 14/20, Loss: 28.399388\n",
      "  Epoch 16/20, Loss: 28.372429\n",
      "  Epoch 16/20, Loss: 28.372429\n",
      "  Epoch 18/20, Loss: 28.187974\n",
      "  Epoch 18/20, Loss: 28.187974\n",
      "  Epoch 20/20, Loss: 28.417748\n",
      "股票 600104 训练完成，最佳损失: 27.245419\n",
      "数据点数量: 2402, 模型保存至: ./../../model\\model_600104.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600111 (26/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 28.417748\n",
      "股票 600104 训练完成，最佳损失: 27.245419\n",
      "数据点数量: 2402, 模型保存至: ./../../model\\model_600104.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600111 (26/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 167.578607\n",
      "  Epoch 1/20, Loss: 167.578607\n",
      "  Epoch 2/20, Loss: 108.679003\n",
      "  Epoch 2/20, Loss: 108.679003\n",
      "  Epoch 4/20, Loss: 109.203164\n",
      "  Epoch 4/20, Loss: 109.203164\n",
      "  Epoch 6/20, Loss: 110.403983\n",
      "  Epoch 6/20, Loss: 110.403983\n",
      "  Epoch 8/20, Loss: 110.124434\n",
      "  Epoch 8/20, Loss: 110.124434\n",
      "  Epoch 10/20, Loss: 110.388590\n",
      "  Epoch 10/20, Loss: 110.388590\n",
      "  Epoch 12/20, Loss: 110.241325\n",
      "  Epoch 12/20, Loss: 110.241325\n",
      "  Epoch 14/20, Loss: 110.157119\n",
      "  Epoch 14/20, Loss: 110.157119\n",
      "  Epoch 16/20, Loss: 110.139647\n",
      "  Epoch 16/20, Loss: 110.139647\n",
      "  Epoch 18/20, Loss: 110.141348\n",
      "  Epoch 18/20, Loss: 110.141348\n",
      "  Epoch 20/20, Loss: 110.334323\n",
      "股票 600111 训练完成，最佳损失: 108.324857\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600111.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600115 (27/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 110.334323\n",
      "股票 600111 训练完成，最佳损失: 108.324857\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600111.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600115 (27/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 8.224956\n",
      "  Epoch 1/20, Loss: 8.224956\n",
      "  Epoch 2/20, Loss: 2.916941\n",
      "  Epoch 2/20, Loss: 2.916941\n",
      "  Epoch 4/20, Loss: 1.917860\n",
      "  Epoch 4/20, Loss: 1.917860\n",
      "  Epoch 6/20, Loss: 0.998640\n",
      "  Epoch 6/20, Loss: 0.998640\n",
      "  Epoch 8/20, Loss: 0.647006\n",
      "  Epoch 8/20, Loss: 0.647006\n",
      "  Epoch 10/20, Loss: 0.587808\n",
      "  Epoch 10/20, Loss: 0.587808\n",
      "  Epoch 12/20, Loss: 0.590480\n",
      "  Epoch 12/20, Loss: 0.590480\n",
      "  Epoch 14/20, Loss: 0.669059\n",
      "  Epoch 14/20, Loss: 0.669059\n",
      "  Epoch 16/20, Loss: 0.545915\n",
      "  Epoch 16/20, Loss: 0.545915\n",
      "  Epoch 18/20, Loss: 0.443948\n",
      "  Epoch 18/20, Loss: 0.443948\n",
      "  Epoch 20/20, Loss: 0.367806\n",
      "股票 600115 训练完成，最佳损失: 0.367806\n",
      "数据点数量: 2414, 模型保存至: ./../../model\\model_600115.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600150 (28/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.367806\n",
      "股票 600115 训练完成，最佳损失: 0.367806\n",
      "数据点数量: 2414, 模型保存至: ./../../model\\model_600115.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600150 (28/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 327.881576\n",
      "  Epoch 1/20, Loss: 327.881576\n",
      "  Epoch 2/20, Loss: 122.660868\n",
      "  Epoch 2/20, Loss: 122.660868\n",
      "  Epoch 4/20, Loss: 86.664197\n",
      "  Epoch 4/20, Loss: 86.664197\n",
      "  Epoch 6/20, Loss: 86.678158\n",
      "  Epoch 6/20, Loss: 86.678158\n",
      "  Epoch 8/20, Loss: 86.726399\n",
      "  Epoch 8/20, Loss: 86.726399\n",
      "  Epoch 10/20, Loss: 86.643060\n",
      "  Epoch 10/20, Loss: 86.643060\n",
      "  Epoch 12/20, Loss: 98.012411\n",
      "  Epoch 12/20, Loss: 98.012411\n",
      "  Epoch 14/20, Loss: 57.101656\n",
      "  Epoch 14/20, Loss: 57.101656\n",
      "  Epoch 16/20, Loss: 49.726753\n",
      "  Epoch 16/20, Loss: 49.726753\n",
      "  Epoch 18/20, Loss: 46.357137\n",
      "  Epoch 18/20, Loss: 46.357137\n",
      "  Epoch 20/20, Loss: 45.056079\n",
      "股票 600150 训练完成，最佳损失: 45.056079\n",
      "数据点数量: 2285, 模型保存至: ./../../model\\model_600150.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600160 (29/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 45.056079\n",
      "股票 600150 训练完成，最佳损失: 45.056079\n",
      "数据点数量: 2285, 模型保存至: ./../../model\\model_600150.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600160 (29/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 48.478796\n",
      "  Epoch 1/20, Loss: 48.478796\n",
      "  Epoch 2/20, Loss: 33.557849\n",
      "  Epoch 2/20, Loss: 33.557849\n",
      "  Epoch 4/20, Loss: 34.919199\n",
      "  Epoch 4/20, Loss: 34.919199\n",
      "  Epoch 6/20, Loss: 35.341146\n",
      "  Epoch 6/20, Loss: 35.341146\n",
      "  Epoch 8/20, Loss: 34.860695\n",
      "  Epoch 8/20, Loss: 34.860695\n",
      "  Epoch 10/20, Loss: 35.017098\n",
      "  Epoch 10/20, Loss: 35.017098\n",
      "  Epoch 12/20, Loss: 34.975889\n",
      "  Epoch 12/20, Loss: 34.975889\n",
      "  Epoch 14/20, Loss: 35.237741\n",
      "  Epoch 14/20, Loss: 35.237741\n",
      "  Epoch 16/20, Loss: 34.844411\n",
      "  Epoch 16/20, Loss: 34.844411\n",
      "  Epoch 18/20, Loss: 34.865178\n",
      "  Epoch 18/20, Loss: 34.865178\n",
      "  Epoch 20/20, Loss: 34.908401\n",
      "股票 600160 训练完成，最佳损失: 33.557849\n",
      "数据点数量: 2401, 模型保存至: ./../../model\\model_600160.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600161 (30/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 34.908401\n",
      "股票 600160 训练完成，最佳损失: 33.557849\n",
      "数据点数量: 2401, 模型保存至: ./../../model\\model_600160.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600161 (30/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 67.836255\n",
      "  Epoch 1/20, Loss: 67.836255\n",
      "  Epoch 2/20, Loss: 42.314658\n",
      "  Epoch 2/20, Loss: 42.314658\n",
      "  Epoch 4/20, Loss: 47.901729\n",
      "  Epoch 4/20, Loss: 47.901729\n",
      "  Epoch 6/20, Loss: 47.513536\n",
      "  Epoch 6/20, Loss: 47.513536\n",
      "  Epoch 8/20, Loss: 47.819234\n",
      "  Epoch 8/20, Loss: 47.819234\n",
      "  Epoch 10/20, Loss: 47.759477\n",
      "  Epoch 10/20, Loss: 47.759477\n",
      "  Epoch 12/20, Loss: 47.787234\n",
      "  Epoch 12/20, Loss: 47.787234\n",
      "  Epoch 14/20, Loss: 47.724032\n",
      "  Epoch 14/20, Loss: 47.724032\n",
      "  Epoch 16/20, Loss: 47.806254\n",
      "  Epoch 16/20, Loss: 47.806254\n",
      "  Epoch 18/20, Loss: 47.813684\n",
      "  Epoch 18/20, Loss: 47.813684\n",
      "  Epoch 20/20, Loss: 47.927199\n",
      "股票 600161 训练完成，最佳损失: 42.314658\n",
      "数据点数量: 2301, 模型保存至: ./../../model\\model_600161.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600176 (31/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 47.927199\n",
      "股票 600161 训练完成，最佳损失: 42.314658\n",
      "数据点数量: 2301, 模型保存至: ./../../model\\model_600161.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600176 (31/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 15.878478\n",
      "  Epoch 1/20, Loss: 15.878478\n",
      "  Epoch 2/20, Loss: 23.561699\n",
      "  Epoch 2/20, Loss: 23.561699\n",
      "  Epoch 4/20, Loss: 23.292396\n",
      "  Epoch 4/20, Loss: 23.292396\n",
      "  Epoch 6/20, Loss: 23.421925\n",
      "  Epoch 6/20, Loss: 23.421925\n",
      "  Epoch 8/20, Loss: 17.835258\n",
      "  Epoch 8/20, Loss: 17.835258\n",
      "  Epoch 10/20, Loss: 7.521793\n",
      "  Epoch 10/20, Loss: 7.521793\n",
      "  Epoch 12/20, Loss: 5.641888\n",
      "  Epoch 12/20, Loss: 5.641888\n",
      "  Epoch 14/20, Loss: 4.815798\n",
      "  Epoch 14/20, Loss: 4.815798\n",
      "  Epoch 16/20, Loss: 3.578591\n",
      "  Epoch 16/20, Loss: 3.578591\n",
      "  Epoch 18/20, Loss: 2.720246\n",
      "  Epoch 18/20, Loss: 2.720246\n",
      "  Epoch 20/20, Loss: 1.952462\n",
      "股票 600176 训练完成，最佳损失: 1.952462\n",
      "数据点数量: 2400, 模型保存至: ./../../model\\model_600176.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600183 (32/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.952462\n",
      "股票 600176 训练完成，最佳损失: 1.952462\n",
      "数据点数量: 2400, 模型保存至: ./../../model\\model_600176.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600183 (32/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 67.154842\n",
      "  Epoch 1/20, Loss: 67.154842\n",
      "  Epoch 2/20, Loss: 68.345618\n",
      "  Epoch 2/20, Loss: 68.345618\n",
      "  Epoch 4/20, Loss: 76.367376\n",
      "  Epoch 4/20, Loss: 76.367376\n",
      "  Epoch 6/20, Loss: 70.248974\n",
      "  Epoch 6/20, Loss: 70.248974\n",
      "  Epoch 8/20, Loss: 71.140342\n",
      "  Epoch 8/20, Loss: 71.140342\n",
      "  Epoch 10/20, Loss: 71.724762\n",
      "  Epoch 10/20, Loss: 71.724762\n",
      "  Epoch 12/20, Loss: 71.165891\n",
      "  Epoch 12/20, Loss: 71.165891\n",
      "  Epoch 14/20, Loss: 71.310632\n",
      "  Epoch 14/20, Loss: 71.310632\n",
      "  Epoch 16/20, Loss: 71.440228\n",
      "  Epoch 16/20, Loss: 71.440228\n",
      "  Epoch 18/20, Loss: 71.348217\n",
      "  Epoch 18/20, Loss: 71.348217\n",
      "  Epoch 20/20, Loss: 71.385967\n",
      "股票 600183 训练完成，最佳损失: 67.154842\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600183.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600188 (33/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 71.385967\n",
      "股票 600183 训练完成，最佳损失: 67.154842\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600183.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600188 (33/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 40.096448\n",
      "  Epoch 1/20, Loss: 40.096448\n",
      "  Epoch 2/20, Loss: 11.892104\n",
      "  Epoch 2/20, Loss: 11.892104\n",
      "  Epoch 4/20, Loss: 3.198569\n",
      "  Epoch 4/20, Loss: 3.198569\n",
      "  Epoch 6/20, Loss: 2.954082\n",
      "  Epoch 6/20, Loss: 2.954082\n",
      "  Epoch 8/20, Loss: 2.808825\n",
      "  Epoch 8/20, Loss: 2.808825\n",
      "  Epoch 10/20, Loss: 2.167652\n",
      "  Epoch 10/20, Loss: 2.167652\n",
      "  Epoch 12/20, Loss: 1.799074\n",
      "  Epoch 12/20, Loss: 1.799074\n",
      "  Epoch 14/20, Loss: 2.757199\n",
      "  Epoch 14/20, Loss: 2.757199\n",
      "  Epoch 16/20, Loss: 1.879111\n",
      "  Epoch 16/20, Loss: 1.879111\n",
      "  Epoch 18/20, Loss: 2.278725\n",
      "  Epoch 18/20, Loss: 2.278725\n",
      "  Epoch 20/20, Loss: 1.581560\n",
      "股票 600188 训练完成，最佳损失: 1.581560\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_600188.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600196 (34/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.581560\n",
      "股票 600188 训练完成，最佳损失: 1.581560\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_600188.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600196 (34/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 594.185526\n",
      "  Epoch 1/20, Loss: 594.185526\n",
      "  Epoch 2/20, Loss: 314.457582\n",
      "  Epoch 2/20, Loss: 314.457582\n",
      "  Epoch 4/20, Loss: 171.334181\n",
      "  Epoch 4/20, Loss: 171.334181\n",
      "  Epoch 6/20, Loss: 159.086700\n",
      "  Epoch 6/20, Loss: 159.086700\n",
      "  Epoch 8/20, Loss: 158.503456\n",
      "  Epoch 8/20, Loss: 158.503456\n",
      "  Epoch 10/20, Loss: 160.324022\n",
      "  Epoch 10/20, Loss: 160.324022\n",
      "  Epoch 12/20, Loss: 159.872828\n",
      "  Epoch 12/20, Loss: 159.872828\n",
      "  Epoch 14/20, Loss: 160.648581\n",
      "  Epoch 14/20, Loss: 160.648581\n",
      "  Epoch 16/20, Loss: 160.388875\n",
      "  Epoch 16/20, Loss: 160.388875\n",
      "  Epoch 18/20, Loss: 161.435258\n",
      "  Epoch 18/20, Loss: 161.435258\n",
      "  Epoch 20/20, Loss: 159.954015\n",
      "股票 600196 训练完成，最佳损失: 158.503456\n",
      "数据点数量: 2420, 模型保存至: ./../../model\\model_600196.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600219 (35/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 159.954015\n",
      "股票 600196 训练完成，最佳损失: 158.503456\n",
      "数据点数量: 2420, 模型保存至: ./../../model\\model_600196.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600219 (35/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.186389\n",
      "  Epoch 1/20, Loss: 1.186389\n",
      "  Epoch 2/20, Loss: 0.634249\n",
      "  Epoch 2/20, Loss: 0.634249\n",
      "  Epoch 4/20, Loss: 0.115391\n",
      "  Epoch 4/20, Loss: 0.115391\n",
      "  Epoch 6/20, Loss: 0.087808\n",
      "  Epoch 6/20, Loss: 0.087808\n",
      "  Epoch 8/20, Loss: 0.123107\n",
      "  Epoch 8/20, Loss: 0.123107\n",
      "  Epoch 10/20, Loss: 0.052987\n",
      "  Epoch 10/20, Loss: 0.052987\n",
      "  Epoch 12/20, Loss: 0.061575\n",
      "  Epoch 12/20, Loss: 0.061575\n",
      "  Epoch 14/20, Loss: 0.085594\n",
      "  Epoch 14/20, Loss: 0.085594\n",
      "  Epoch 16/20, Loss: 0.132371\n",
      "  Epoch 16/20, Loss: 0.132371\n",
      "  Epoch 18/20, Loss: 0.218362\n",
      "  Epoch 18/20, Loss: 0.218362\n",
      "  Epoch 20/20, Loss: 0.207609\n",
      "股票 600219 训练完成，最佳损失: 0.045438\n",
      "数据点数量: 2316, 模型保存至: ./../../model\\model_600219.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600233 (36/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.207609\n",
      "股票 600219 训练完成，最佳损失: 0.045438\n",
      "数据点数量: 2316, 模型保存至: ./../../model\\model_600219.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600233 (36/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 59.552554\n",
      "  Epoch 1/20, Loss: 59.552554\n",
      "  Epoch 2/20, Loss: 20.435828\n",
      "  Epoch 2/20, Loss: 20.435828\n",
      "  Epoch 4/20, Loss: 20.167573\n",
      "  Epoch 4/20, Loss: 20.167573\n",
      "  Epoch 6/20, Loss: 20.450904\n",
      "  Epoch 6/20, Loss: 20.450904\n",
      "  Epoch 8/20, Loss: 20.198770\n",
      "  Epoch 8/20, Loss: 20.198770\n",
      "  Epoch 10/20, Loss: 14.549092\n",
      "  Epoch 10/20, Loss: 14.549092\n",
      "  Epoch 12/20, Loss: 7.282448\n",
      "  Epoch 12/20, Loss: 7.282448\n",
      "  Epoch 14/20, Loss: 4.480399\n",
      "  Epoch 14/20, Loss: 4.480399\n",
      "  Epoch 16/20, Loss: 4.007688\n",
      "  Epoch 16/20, Loss: 4.007688\n",
      "  Epoch 18/20, Loss: 2.955445\n",
      "  Epoch 18/20, Loss: 2.955445\n",
      "  Epoch 20/20, Loss: 2.812554\n",
      "股票 600233 训练完成，最佳损失: 2.772420\n",
      "数据点数量: 2325, 模型保存至: ./../../model\\model_600233.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600276 (37/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 2.812554\n",
      "股票 600233 训练完成，最佳损失: 2.772420\n",
      "数据点数量: 2325, 模型保存至: ./../../model\\model_600233.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600276 (37/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1145.188285\n",
      "  Epoch 1/20, Loss: 1145.188285\n",
      "  Epoch 2/20, Loss: 756.715453\n",
      "  Epoch 2/20, Loss: 756.715453\n",
      "  Epoch 4/20, Loss: 450.490643\n",
      "  Epoch 4/20, Loss: 450.490643\n",
      "  Epoch 6/20, Loss: 377.632389\n",
      "  Epoch 6/20, Loss: 377.632389\n",
      "  Epoch 8/20, Loss: 367.629690\n",
      "  Epoch 8/20, Loss: 367.629690\n",
      "  Epoch 10/20, Loss: 367.448533\n",
      "  Epoch 10/20, Loss: 367.448533\n",
      "  Epoch 12/20, Loss: 369.823209\n",
      "  Epoch 12/20, Loss: 369.823209\n",
      "  Epoch 14/20, Loss: 368.700131\n",
      "  Epoch 14/20, Loss: 368.700131\n",
      "  Epoch 16/20, Loss: 372.029742\n",
      "  Epoch 16/20, Loss: 372.029742\n",
      "  Epoch 18/20, Loss: 372.182506\n",
      "  Epoch 18/20, Loss: 372.182506\n",
      "  Epoch 20/20, Loss: 370.319401\n",
      "股票 600276 训练完成，最佳损失: 366.484998\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_600276.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600309 (38/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 370.319401\n",
      "股票 600276 训练完成，最佳损失: 366.484998\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_600276.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600309 (38/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2894.189274\n",
      "  Epoch 1/20, Loss: 2894.189274\n",
      "  Epoch 2/20, Loss: 2365.502246\n",
      "  Epoch 2/20, Loss: 2365.502246\n",
      "  Epoch 4/20, Loss: 1663.940186\n",
      "  Epoch 4/20, Loss: 1663.940186\n",
      "  Epoch 6/20, Loss: 1358.857635\n",
      "  Epoch 6/20, Loss: 1358.857635\n",
      "  Epoch 8/20, Loss: 1417.140171\n",
      "  Epoch 8/20, Loss: 1417.140171\n",
      "  Epoch 10/20, Loss: 1311.517577\n",
      "  Epoch 10/20, Loss: 1311.517577\n",
      "  Epoch 12/20, Loss: 1093.079019\n",
      "  Epoch 12/20, Loss: 1093.079019\n",
      "  Epoch 14/20, Loss: 977.521383\n",
      "  Epoch 14/20, Loss: 977.521383\n",
      "  Epoch 16/20, Loss: 915.752462\n",
      "  Epoch 16/20, Loss: 915.752462\n",
      "  Epoch 18/20, Loss: 727.079371\n",
      "  Epoch 18/20, Loss: 727.079371\n",
      "  Epoch 20/20, Loss: 573.624047\n",
      "股票 600309 训练完成，最佳损失: 573.624047\n",
      "数据点数量: 2289, 模型保存至: ./../../model\\model_600309.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600332 (39/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 573.624047\n",
      "股票 600309 训练完成，最佳损失: 573.624047\n",
      "数据点数量: 2289, 模型保存至: ./../../model\\model_600309.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600332 (39/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 323.167578\n",
      "  Epoch 1/20, Loss: 323.167578\n",
      "  Epoch 2/20, Loss: 91.785710\n",
      "  Epoch 2/20, Loss: 91.785710\n",
      "  Epoch 4/20, Loss: 23.478348\n",
      "  Epoch 4/20, Loss: 23.478348\n",
      "  Epoch 6/20, Loss: 23.363184\n",
      "  Epoch 6/20, Loss: 23.363184\n",
      "  Epoch 8/20, Loss: 23.856966\n",
      "  Epoch 8/20, Loss: 23.856966\n",
      "  Epoch 10/20, Loss: 23.566147\n",
      "  Epoch 10/20, Loss: 23.566147\n",
      "  Epoch 12/20, Loss: 23.956680\n",
      "  Epoch 12/20, Loss: 23.956680\n",
      "  Epoch 14/20, Loss: 24.058905\n",
      "  Epoch 14/20, Loss: 24.058905\n",
      "  Epoch 16/20, Loss: 24.523103\n",
      "  Epoch 16/20, Loss: 24.523103\n",
      "  Epoch 18/20, Loss: 24.288047\n",
      "  Epoch 18/20, Loss: 24.288047\n",
      "  Epoch 20/20, Loss: 24.044605\n",
      "股票 600332 训练完成，最佳损失: 23.008185\n",
      "数据点数量: 2373, 模型保存至: ./../../model\\model_600332.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600346 (40/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 24.044605\n",
      "股票 600332 训练完成，最佳损失: 23.008185\n",
      "数据点数量: 2373, 模型保存至: ./../../model\\model_600332.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600346 (40/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 47.090036\n",
      "  Epoch 1/20, Loss: 47.090036\n",
      "  Epoch 2/20, Loss: 66.812109\n",
      "  Epoch 2/20, Loss: 66.812109\n",
      "  Epoch 4/20, Loss: 66.248942\n",
      "  Epoch 4/20, Loss: 66.248942\n",
      "  Epoch 6/20, Loss: 66.490709\n",
      "  Epoch 6/20, Loss: 66.490709\n",
      "  Epoch 8/20, Loss: 66.207181\n",
      "  Epoch 8/20, Loss: 66.207181\n",
      "  Epoch 10/20, Loss: 66.351171\n",
      "  Epoch 10/20, Loss: 66.351171\n",
      "  Epoch 12/20, Loss: 66.044555\n",
      "  Epoch 12/20, Loss: 66.044555\n",
      "  Epoch 14/20, Loss: 66.009800\n",
      "  Epoch 14/20, Loss: 66.009800\n",
      "  Epoch 16/20, Loss: 65.965890\n",
      "  Epoch 16/20, Loss: 65.965890\n",
      "  Epoch 18/20, Loss: 65.817792\n",
      "  Epoch 18/20, Loss: 65.817792\n",
      "  Epoch 20/20, Loss: 71.800541\n",
      "股票 600346 训练完成，最佳损失: 47.090036\n",
      "数据点数量: 2213, 模型保存至: ./../../model\\model_600346.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600362 (41/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 71.800541\n",
      "股票 600346 训练完成，最佳损失: 47.090036\n",
      "数据点数量: 2213, 模型保存至: ./../../model\\model_600346.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600362 (41/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 59.285257\n",
      "  Epoch 1/20, Loss: 59.285257\n",
      "  Epoch 2/20, Loss: 17.597232\n",
      "  Epoch 2/20, Loss: 17.597232\n",
      "  Epoch 4/20, Loss: 19.743648\n",
      "  Epoch 4/20, Loss: 19.743648\n",
      "  Epoch 6/20, Loss: 19.723732\n",
      "  Epoch 6/20, Loss: 19.723732\n",
      "  Epoch 8/20, Loss: 19.939468\n",
      "  Epoch 8/20, Loss: 19.939468\n",
      "  Epoch 10/20, Loss: 19.885221\n",
      "  Epoch 10/20, Loss: 19.885221\n",
      "  Epoch 12/20, Loss: 19.950586\n",
      "  Epoch 12/20, Loss: 19.950586\n",
      "  Epoch 14/20, Loss: 19.806871\n",
      "  Epoch 14/20, Loss: 19.806871\n",
      "  Epoch 16/20, Loss: 19.907888\n",
      "  Epoch 16/20, Loss: 19.907888\n",
      "  Epoch 18/20, Loss: 19.837905\n",
      "  Epoch 18/20, Loss: 19.837905\n",
      "  Epoch 20/20, Loss: 19.947174\n",
      "股票 600362 训练完成，最佳损失: 17.597232\n",
      "数据点数量: 2414, 模型保存至: ./../../model\\model_600362.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600372 (42/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 19.947174\n",
      "股票 600362 训练完成，最佳损失: 17.597232\n",
      "数据点数量: 2414, 模型保存至: ./../../model\\model_600362.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600372 (42/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 100.281746\n",
      "  Epoch 1/20, Loss: 100.281746\n",
      "  Epoch 2/20, Loss: 26.223302\n",
      "  Epoch 2/20, Loss: 26.223302\n",
      "  Epoch 4/20, Loss: 23.810134\n",
      "  Epoch 4/20, Loss: 23.810134\n",
      "  Epoch 6/20, Loss: 23.838940\n",
      "  Epoch 6/20, Loss: 23.838940\n",
      "  Epoch 8/20, Loss: 23.785930\n",
      "  Epoch 8/20, Loss: 23.785930\n",
      "  Epoch 10/20, Loss: 23.827478\n",
      "  Epoch 10/20, Loss: 23.827478\n",
      "  Epoch 12/20, Loss: 24.095647\n",
      "  Epoch 12/20, Loss: 24.095647\n",
      "  Epoch 14/20, Loss: 23.863610\n",
      "  Epoch 14/20, Loss: 23.863610\n",
      "  Epoch 16/20, Loss: 23.874761\n",
      "  Epoch 16/20, Loss: 23.874761\n",
      "  Epoch 18/20, Loss: 23.707744\n",
      "  Epoch 18/20, Loss: 23.707744\n",
      "  Epoch 20/20, Loss: 15.656862\n",
      "股票 600372 训练完成，最佳损失: 15.656862\n",
      "数据点数量: 2394, 模型保存至: ./../../model\\model_600372.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600377 (43/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 15.656862\n",
      "股票 600372 训练完成，最佳损失: 15.656862\n",
      "数据点数量: 2394, 模型保存至: ./../../model\\model_600372.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600377 (43/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6.290745\n",
      "  Epoch 1/20, Loss: 6.290745\n",
      "  Epoch 2/20, Loss: 8.834822\n",
      "  Epoch 2/20, Loss: 8.834822\n",
      "  Epoch 4/20, Loss: 7.747019\n",
      "  Epoch 4/20, Loss: 7.747019\n",
      "  Epoch 6/20, Loss: 7.744772\n",
      "  Epoch 6/20, Loss: 7.744772\n",
      "  Epoch 8/20, Loss: 6.944572\n",
      "  Epoch 8/20, Loss: 6.944572\n",
      "  Epoch 10/20, Loss: 4.738513\n",
      "  Epoch 10/20, Loss: 4.738513\n",
      "  Epoch 12/20, Loss: 5.310733\n",
      "  Epoch 12/20, Loss: 5.310733\n",
      "  Epoch 14/20, Loss: 4.551905\n",
      "  Epoch 14/20, Loss: 4.551905\n",
      "  Epoch 16/20, Loss: 4.910247\n",
      "  Epoch 16/20, Loss: 4.910247\n",
      "  Epoch 18/20, Loss: 4.358626\n",
      "  Epoch 18/20, Loss: 4.358626\n",
      "  Epoch 20/20, Loss: 4.039587\n",
      "股票 600377 训练完成，最佳损失: 3.612072\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600377.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600406 (44/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 4.039587\n",
      "股票 600377 训练完成，最佳损失: 3.612072\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600377.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600406 (44/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 55.748384\n",
      "  Epoch 1/20, Loss: 55.748384\n",
      "  Epoch 2/20, Loss: 56.238045\n",
      "  Epoch 2/20, Loss: 56.238045\n",
      "  Epoch 4/20, Loss: 58.791267\n",
      "  Epoch 4/20, Loss: 58.791267\n",
      "  Epoch 6/20, Loss: 58.926088\n",
      "  Epoch 6/20, Loss: 58.926088\n",
      "  Epoch 8/20, Loss: 58.304486\n",
      "  Epoch 8/20, Loss: 58.304486\n",
      "  Epoch 10/20, Loss: 58.775795\n",
      "  Epoch 10/20, Loss: 58.775795\n",
      "  Epoch 12/20, Loss: 58.531968\n",
      "  Epoch 12/20, Loss: 58.531968\n",
      "  Epoch 14/20, Loss: 58.198858\n",
      "  Epoch 14/20, Loss: 58.198858\n",
      "  Epoch 16/20, Loss: 59.150287\n",
      "  Epoch 16/20, Loss: 59.150287\n",
      "  Epoch 18/20, Loss: 60.918444\n",
      "  Epoch 18/20, Loss: 60.918444\n",
      "  Epoch 20/20, Loss: 56.228264\n",
      "股票 600406 训练完成，最佳损失: 54.317814\n",
      "数据点数量: 2313, 模型保存至: ./../../model\\model_600406.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600415 (45/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 56.228264\n",
      "股票 600406 训练完成，最佳损失: 54.317814\n",
      "数据点数量: 2313, 模型保存至: ./../../model\\model_600406.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600415 (45/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 17.964069\n",
      "  Epoch 1/20, Loss: 17.964069\n",
      "  Epoch 2/20, Loss: 7.042680\n",
      "  Epoch 2/20, Loss: 7.042680\n",
      "  Epoch 4/20, Loss: 5.132248\n",
      "  Epoch 4/20, Loss: 5.132248\n",
      "  Epoch 6/20, Loss: 3.908705\n",
      "  Epoch 6/20, Loss: 3.908705\n",
      "  Epoch 8/20, Loss: 2.413962\n",
      "  Epoch 8/20, Loss: 2.413962\n",
      "  Epoch 10/20, Loss: 1.620847\n",
      "  Epoch 10/20, Loss: 1.620847\n",
      "  Epoch 12/20, Loss: 1.937890\n",
      "  Epoch 12/20, Loss: 1.937890\n",
      "  Epoch 14/20, Loss: 3.166188\n",
      "  Epoch 14/20, Loss: 3.166188\n",
      "  Epoch 16/20, Loss: 1.829423\n",
      "  Epoch 16/20, Loss: 1.829423\n",
      "  Epoch 18/20, Loss: 1.262888\n",
      "  Epoch 18/20, Loss: 1.262888\n",
      "  Epoch 20/20, Loss: 0.955621\n",
      "股票 600415 训练完成，最佳损失: 0.955621\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_600415.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600426 (46/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.955621\n",
      "股票 600415 训练完成，最佳损失: 0.955621\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_600415.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600426 (46/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 122.836237\n",
      "  Epoch 1/20, Loss: 122.836237\n",
      "  Epoch 2/20, Loss: 128.408508\n",
      "  Epoch 2/20, Loss: 128.408508\n",
      "  Epoch 4/20, Loss: 131.154156\n",
      "  Epoch 4/20, Loss: 131.154156\n",
      "  Epoch 6/20, Loss: 132.586937\n",
      "  Epoch 6/20, Loss: 132.586937\n",
      "  Epoch 8/20, Loss: 128.744759\n",
      "  Epoch 8/20, Loss: 128.744759\n",
      "  Epoch 10/20, Loss: 126.517451\n",
      "  Epoch 10/20, Loss: 126.517451\n",
      "  Epoch 12/20, Loss: 130.511902\n",
      "  Epoch 12/20, Loss: 130.511902\n",
      "  Epoch 14/20, Loss: 126.231460\n",
      "  Epoch 14/20, Loss: 126.231460\n",
      "  Epoch 16/20, Loss: 127.138898\n",
      "  Epoch 16/20, Loss: 127.138898\n",
      "  Epoch 18/20, Loss: 126.100082\n",
      "  Epoch 18/20, Loss: 126.100082\n",
      "  Epoch 20/20, Loss: 126.671715\n",
      "股票 600426 训练完成，最佳损失: 122.836237\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_600426.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600436 (47/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 126.671715\n",
      "股票 600426 训练完成，最佳损失: 122.836237\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_600426.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600436 (47/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 37932.633871\n",
      "  Epoch 1/20, Loss: 37932.633871\n",
      "  Epoch 2/20, Loss: 35370.214921\n",
      "  Epoch 2/20, Loss: 35370.214921\n",
      "  Epoch 4/20, Loss: 31289.589924\n",
      "  Epoch 4/20, Loss: 31289.589924\n",
      "  Epoch 6/20, Loss: 27913.853800\n",
      "  Epoch 6/20, Loss: 27913.853800\n",
      "  Epoch 8/20, Loss: 25135.614253\n",
      "  Epoch 8/20, Loss: 25135.614253\n",
      "  Epoch 10/20, Loss: 22859.127535\n",
      "  Epoch 10/20, Loss: 22859.127535\n",
      "  Epoch 12/20, Loss: 21083.224883\n",
      "  Epoch 12/20, Loss: 21083.224883\n",
      "  Epoch 14/20, Loss: 19556.547328\n",
      "  Epoch 14/20, Loss: 19556.547328\n",
      "  Epoch 16/20, Loss: 18319.675365\n",
      "  Epoch 16/20, Loss: 18319.675365\n",
      "  Epoch 18/20, Loss: 17457.519892\n",
      "  Epoch 18/20, Loss: 17457.519892\n",
      "  Epoch 20/20, Loss: 17331.281475\n",
      "股票 600436 训练完成，最佳损失: 17281.476078\n",
      "数据点数量: 2416, 模型保存至: ./../../model\\model_600436.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600438 (48/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 17331.281475\n",
      "股票 600436 训练完成，最佳损失: 17281.476078\n",
      "数据点数量: 2416, 模型保存至: ./../../model\\model_600436.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600438 (48/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 274.468140\n",
      "  Epoch 1/20, Loss: 274.468140\n",
      "  Epoch 2/20, Loss: 283.601164\n",
      "  Epoch 2/20, Loss: 283.601164\n",
      "  Epoch 4/20, Loss: 154.511864\n",
      "  Epoch 4/20, Loss: 154.511864\n",
      "  Epoch 6/20, Loss: 143.373361\n",
      "  Epoch 6/20, Loss: 143.373361\n",
      "  Epoch 8/20, Loss: 94.938673\n",
      "  Epoch 8/20, Loss: 94.938673\n",
      "  Epoch 10/20, Loss: 80.892420\n",
      "  Epoch 10/20, Loss: 80.892420\n",
      "  Epoch 12/20, Loss: 76.123494\n",
      "  Epoch 12/20, Loss: 76.123494\n",
      "  Epoch 14/20, Loss: 69.251566\n",
      "  Epoch 14/20, Loss: 69.251566\n",
      "  Epoch 16/20, Loss: 59.141464\n",
      "  Epoch 16/20, Loss: 59.141464\n",
      "  Epoch 18/20, Loss: 35.675635\n",
      "  Epoch 18/20, Loss: 35.675635\n",
      "  Epoch 20/20, Loss: 28.851271\n",
      "股票 600438 训练完成，最佳损失: 28.851271\n",
      "数据点数量: 2332, 模型保存至: ./../../model\\model_600438.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600460 (49/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 28.851271\n",
      "股票 600438 训练完成，最佳损失: 28.851271\n",
      "数据点数量: 2332, 模型保存至: ./../../model\\model_600438.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600460 (49/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 310.975695\n",
      "  Epoch 1/20, Loss: 310.975695\n",
      "  Epoch 2/20, Loss: 247.734936\n",
      "  Epoch 2/20, Loss: 247.734936\n",
      "  Epoch 4/20, Loss: 233.994714\n",
      "  Epoch 4/20, Loss: 233.994714\n",
      "  Epoch 6/20, Loss: 236.524049\n",
      "  Epoch 6/20, Loss: 236.524049\n",
      "  Epoch 8/20, Loss: 236.825765\n",
      "  Epoch 8/20, Loss: 236.825765\n",
      "  Epoch 10/20, Loss: 237.520824\n",
      "  Epoch 10/20, Loss: 237.520824\n",
      "  Epoch 12/20, Loss: 238.214699\n",
      "  Epoch 12/20, Loss: 238.214699\n",
      "  Epoch 14/20, Loss: 238.095530\n",
      "  Epoch 14/20, Loss: 238.095530\n",
      "  Epoch 16/20, Loss: 236.820027\n",
      "  Epoch 16/20, Loss: 236.820027\n",
      "  Epoch 18/20, Loss: 238.411800\n",
      "  Epoch 18/20, Loss: 238.411800\n",
      "  Epoch 20/20, Loss: 238.319146\n",
      "股票 600460 训练完成，最佳损失: 233.994714\n",
      "数据点数量: 2337, 模型保存至: ./../../model\\model_600460.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600482 (50/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 238.319146\n",
      "股票 600460 训练完成，最佳损失: 233.994714\n",
      "数据点数量: 2337, 模型保存至: ./../../model\\model_600460.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600482 (50/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 237.876890\n",
      "  Epoch 1/20, Loss: 237.876890\n",
      "  Epoch 2/20, Loss: 75.236520\n",
      "  Epoch 2/20, Loss: 75.236520\n",
      "  Epoch 4/20, Loss: 43.386400\n",
      "  Epoch 4/20, Loss: 43.386400\n",
      "  Epoch 6/20, Loss: 42.609086\n",
      "  Epoch 6/20, Loss: 42.609086\n",
      "  Epoch 8/20, Loss: 43.056768\n",
      "  Epoch 8/20, Loss: 43.056768\n",
      "  Epoch 10/20, Loss: 43.097029\n",
      "  Epoch 10/20, Loss: 43.097029\n",
      "  Epoch 12/20, Loss: 43.223145\n",
      "  Epoch 12/20, Loss: 43.223145\n",
      "  Epoch 14/20, Loss: 43.168814\n",
      "  Epoch 14/20, Loss: 43.168814\n",
      "  Epoch 16/20, Loss: 43.228638\n",
      "  Epoch 16/20, Loss: 43.228638\n",
      "  Epoch 18/20, Loss: 33.777527\n",
      "  Epoch 18/20, Loss: 33.777527\n",
      "  Epoch 20/20, Loss: 20.223985\n",
      "股票 600482 训练完成，最佳损失: 20.223985\n",
      "数据点数量: 2299, 模型保存至: ./../../model\\model_600482.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600489 (51/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 20.223985\n",
      "股票 600482 训练完成，最佳损失: 20.223985\n",
      "数据点数量: 2299, 模型保存至: ./../../model\\model_600482.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600489 (51/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 18.255118\n",
      "  Epoch 1/20, Loss: 18.255118\n",
      "  Epoch 2/20, Loss: 7.789519\n",
      "  Epoch 2/20, Loss: 7.789519\n",
      "  Epoch 4/20, Loss: 7.339185\n",
      "  Epoch 4/20, Loss: 7.339185\n",
      "  Epoch 6/20, Loss: 5.961791\n",
      "  Epoch 6/20, Loss: 5.961791\n",
      "  Epoch 8/20, Loss: 2.449633\n",
      "  Epoch 8/20, Loss: 2.449633\n",
      "  Epoch 10/20, Loss: 1.765620\n",
      "  Epoch 10/20, Loss: 1.765620\n",
      "  Epoch 12/20, Loss: 1.471826\n",
      "  Epoch 12/20, Loss: 1.471826\n",
      "  Epoch 14/20, Loss: 1.385696\n",
      "  Epoch 14/20, Loss: 1.385696\n",
      "  Epoch 16/20, Loss: 1.088749\n",
      "  Epoch 16/20, Loss: 1.088749\n",
      "  Epoch 18/20, Loss: 0.944534\n",
      "  Epoch 18/20, Loss: 0.944534\n",
      "  Epoch 20/20, Loss: 0.831641\n",
      "股票 600489 训练完成，最佳损失: 0.831641\n",
      "数据点数量: 2403, 模型保存至: ./../../model\\model_600489.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600515 (52/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.831641\n",
      "股票 600489 训练完成，最佳损失: 0.831641\n",
      "数据点数量: 2403, 模型保存至: ./../../model\\model_600489.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600515 (52/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 12.755916\n",
      "  Epoch 1/20, Loss: 12.755916\n",
      "  Epoch 2/20, Loss: 1.631855\n",
      "  Epoch 2/20, Loss: 1.631855\n",
      "  Epoch 4/20, Loss: 1.525236\n",
      "  Epoch 4/20, Loss: 1.525236\n",
      "  Epoch 6/20, Loss: 0.694081\n",
      "  Epoch 6/20, Loss: 0.694081\n",
      "  Epoch 8/20, Loss: 0.269095\n",
      "  Epoch 8/20, Loss: 0.269095\n",
      "  Epoch 10/20, Loss: 0.246819\n",
      "  Epoch 10/20, Loss: 0.246819\n",
      "  Epoch 12/20, Loss: 0.225911\n",
      "  Epoch 12/20, Loss: 0.225911\n",
      "  Epoch 14/20, Loss: 0.185864\n",
      "  Epoch 14/20, Loss: 0.185864\n",
      "  Epoch 16/20, Loss: 0.355057\n",
      "  Epoch 16/20, Loss: 0.355057\n",
      "  Epoch 18/20, Loss: 0.408989\n",
      "  Epoch 18/20, Loss: 0.408989\n",
      "  Epoch 20/20, Loss: 0.270420\n",
      "股票 600515 训练完成，最佳损失: 0.185864\n",
      "数据点数量: 2140, 模型保存至: ./../../model\\model_600515.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600519 (53/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.270420\n",
      "股票 600515 训练完成，最佳损失: 0.185864\n",
      "数据点数量: 2140, 模型保存至: ./../../model\\model_600515.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600519 (53/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1455048.365128\n",
      "  Epoch 1/20, Loss: 1455048.365128\n",
      "  Epoch 2/20, Loss: 1439148.510287\n",
      "  Epoch 2/20, Loss: 1439148.510287\n",
      "  Epoch 4/20, Loss: 1412583.121776\n",
      "  Epoch 4/20, Loss: 1412583.121776\n",
      "  Epoch 6/20, Loss: 1396561.770495\n",
      "  Epoch 6/20, Loss: 1396561.770495\n",
      "  Epoch 8/20, Loss: 1383795.854037\n",
      "  Epoch 8/20, Loss: 1383795.854037\n",
      "  Epoch 10/20, Loss: 1369880.463038\n",
      "  Epoch 10/20, Loss: 1369880.463038\n",
      "  Epoch 12/20, Loss: 1357738.527442\n",
      "  Epoch 12/20, Loss: 1357738.527442\n",
      "  Epoch 14/20, Loss: 1348220.826788\n",
      "  Epoch 14/20, Loss: 1348220.826788\n",
      "  Epoch 16/20, Loss: 1335783.268860\n",
      "  Epoch 16/20, Loss: 1335783.268860\n",
      "  Epoch 18/20, Loss: 1316715.905470\n",
      "  Epoch 18/20, Loss: 1316715.905470\n",
      "  Epoch 20/20, Loss: 1296289.326365\n",
      "股票 600519 训练完成，最佳损失: 1296289.326365\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600519.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600547 (54/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1296289.326365\n",
      "股票 600519 训练完成，最佳损失: 1296289.326365\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600519.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600547 (54/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 101.512339\n",
      "  Epoch 1/20, Loss: 101.512339\n",
      "  Epoch 2/20, Loss: 27.863231\n",
      "  Epoch 2/20, Loss: 27.863231\n",
      "  Epoch 4/20, Loss: 32.789868\n",
      "  Epoch 4/20, Loss: 32.789868\n",
      "  Epoch 6/20, Loss: 32.757349\n",
      "  Epoch 6/20, Loss: 32.757349\n",
      "  Epoch 8/20, Loss: 33.499516\n",
      "  Epoch 8/20, Loss: 33.499516\n",
      "  Epoch 10/20, Loss: 33.063520\n",
      "  Epoch 10/20, Loss: 33.063520\n",
      "  Epoch 12/20, Loss: 33.117858\n",
      "  Epoch 12/20, Loss: 33.117858\n",
      "  Epoch 14/20, Loss: 33.276829\n",
      "  Epoch 14/20, Loss: 33.276829\n",
      "  Epoch 16/20, Loss: 32.991982\n",
      "  Epoch 16/20, Loss: 32.991982\n",
      "  Epoch 18/20, Loss: 32.951303\n",
      "  Epoch 18/20, Loss: 32.951303\n",
      "  Epoch 20/20, Loss: 32.984417\n",
      "股票 600547 训练完成，最佳损失: 27.863231\n",
      "数据点数量: 2386, 模型保存至: ./../../model\\model_600547.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600570 (55/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 32.984417\n",
      "股票 600547 训练完成，最佳损失: 27.863231\n",
      "数据点数量: 2386, 模型保存至: ./../../model\\model_600547.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600570 (55/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 500.452292\n",
      "  Epoch 1/20, Loss: 500.452292\n",
      "  Epoch 2/20, Loss: 271.746923\n",
      "  Epoch 2/20, Loss: 271.746923\n",
      "  Epoch 4/20, Loss: 185.887994\n",
      "  Epoch 4/20, Loss: 185.887994\n",
      "  Epoch 6/20, Loss: 183.206213\n",
      "  Epoch 6/20, Loss: 183.206213\n",
      "  Epoch 8/20, Loss: 184.588243\n",
      "  Epoch 8/20, Loss: 184.588243\n",
      "  Epoch 10/20, Loss: 185.249850\n",
      "  Epoch 10/20, Loss: 185.249850\n",
      "  Epoch 12/20, Loss: 184.741118\n",
      "  Epoch 12/20, Loss: 184.741118\n",
      "  Epoch 14/20, Loss: 186.413506\n",
      "  Epoch 14/20, Loss: 186.413506\n",
      "  Epoch 16/20, Loss: 185.766348\n",
      "  Epoch 16/20, Loss: 185.766348\n",
      "  Epoch 18/20, Loss: 185.620382\n",
      "  Epoch 18/20, Loss: 185.620382\n",
      "  Epoch 20/20, Loss: 185.900341\n",
      "股票 600570 训练完成，最佳损失: 181.878798\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_600570.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600584 (56/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 185.900341\n",
      "股票 600570 训练完成，最佳损失: 181.878798\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_600570.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600584 (56/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 281.381988\n",
      "  Epoch 1/20, Loss: 281.381988\n",
      "  Epoch 2/20, Loss: 115.124317\n",
      "  Epoch 2/20, Loss: 115.124317\n",
      "  Epoch 4/20, Loss: 85.145717\n",
      "  Epoch 4/20, Loss: 85.145717\n",
      "  Epoch 6/20, Loss: 87.427764\n",
      "  Epoch 6/20, Loss: 87.427764\n",
      "  Epoch 8/20, Loss: 88.480583\n",
      "  Epoch 8/20, Loss: 88.480583\n",
      "  Epoch 10/20, Loss: 88.671324\n",
      "  Epoch 10/20, Loss: 88.671324\n",
      "  Epoch 12/20, Loss: 88.882938\n",
      "  Epoch 12/20, Loss: 88.882938\n",
      "  Epoch 14/20, Loss: 88.982693\n",
      "  Epoch 14/20, Loss: 88.982693\n",
      "  Epoch 16/20, Loss: 88.338058\n",
      "  Epoch 16/20, Loss: 88.338058\n",
      "  Epoch 18/20, Loss: 89.036047\n",
      "  Epoch 18/20, Loss: 89.036047\n",
      "  Epoch 20/20, Loss: 88.456628\n",
      "股票 600584 训练完成，最佳损失: 85.145717\n",
      "数据点数量: 2269, 模型保存至: ./../../model\\model_600584.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600585 (57/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 88.456628\n",
      "股票 600584 训练完成，最佳损失: 85.145717\n",
      "数据点数量: 2269, 模型保存至: ./../../model\\model_600584.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600585 (57/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 339.949351\n",
      "  Epoch 1/20, Loss: 339.949351\n",
      "  Epoch 2/20, Loss: 228.142461\n",
      "  Epoch 2/20, Loss: 228.142461\n",
      "  Epoch 4/20, Loss: 193.024265\n",
      "  Epoch 4/20, Loss: 193.024265\n",
      "  Epoch 6/20, Loss: 194.793179\n",
      "  Epoch 6/20, Loss: 194.793179\n",
      "  Epoch 8/20, Loss: 195.712642\n",
      "  Epoch 8/20, Loss: 195.712642\n",
      "  Epoch 10/20, Loss: 196.955702\n",
      "  Epoch 10/20, Loss: 196.955702\n",
      "  Epoch 12/20, Loss: 201.220285\n",
      "  Epoch 12/20, Loss: 201.220285\n",
      "  Epoch 14/20, Loss: 151.335025\n",
      "  Epoch 14/20, Loss: 151.335025\n",
      "  Epoch 16/20, Loss: 95.570643\n",
      "  Epoch 16/20, Loss: 95.570643\n",
      "  Epoch 18/20, Loss: 86.042327\n",
      "  Epoch 18/20, Loss: 86.042327\n",
      "  Epoch 20/20, Loss: 84.027680\n",
      "股票 600585 训练完成，最佳损失: 84.027680\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600585.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600588 (58/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 84.027680\n",
      "股票 600585 训练完成，最佳损失: 84.027680\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600585.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600588 (58/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 189.476185\n",
      "  Epoch 1/20, Loss: 189.476185\n",
      "  Epoch 2/20, Loss: 127.287000\n",
      "  Epoch 2/20, Loss: 127.287000\n",
      "  Epoch 4/20, Loss: 122.783517\n",
      "  Epoch 4/20, Loss: 122.783517\n",
      "  Epoch 6/20, Loss: 123.220824\n",
      "  Epoch 6/20, Loss: 123.220824\n",
      "  Epoch 8/20, Loss: 123.838398\n",
      "  Epoch 8/20, Loss: 123.838398\n",
      "  Epoch 10/20, Loss: 124.249419\n",
      "  Epoch 10/20, Loss: 124.249419\n",
      "  Epoch 12/20, Loss: 124.124637\n",
      "  Epoch 12/20, Loss: 124.124637\n",
      "  Epoch 14/20, Loss: 124.118654\n",
      "  Epoch 14/20, Loss: 124.118654\n",
      "  Epoch 16/20, Loss: 124.016756\n",
      "  Epoch 16/20, Loss: 124.016756\n",
      "  Epoch 18/20, Loss: 124.246694\n",
      "  Epoch 18/20, Loss: 124.246694\n",
      "  Epoch 20/20, Loss: 124.276916\n",
      "股票 600588 训练完成，最佳损失: 122.582469\n",
      "数据点数量: 2416, 模型保存至: ./../../model\\model_600588.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600600 (59/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 124.276916\n",
      "股票 600588 训练完成，最佳损失: 122.582469\n",
      "数据点数量: 2416, 模型保存至: ./../../model\\model_600588.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600600 (59/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2812.247407\n",
      "  Epoch 1/20, Loss: 2812.247407\n",
      "  Epoch 2/20, Loss: 2110.597354\n",
      "  Epoch 2/20, Loss: 2110.597354\n",
      "  Epoch 4/20, Loss: 1376.516625\n",
      "  Epoch 4/20, Loss: 1376.516625\n",
      "  Epoch 6/20, Loss: 1048.983456\n",
      "  Epoch 6/20, Loss: 1048.983456\n",
      "  Epoch 8/20, Loss: 913.839759\n",
      "  Epoch 8/20, Loss: 913.839759\n",
      "  Epoch 10/20, Loss: 868.567242\n",
      "  Epoch 10/20, Loss: 868.567242\n",
      "  Epoch 12/20, Loss: 861.560724\n",
      "  Epoch 12/20, Loss: 861.560724\n",
      "  Epoch 14/20, Loss: 860.272977\n",
      "  Epoch 14/20, Loss: 860.272977\n",
      "  Epoch 16/20, Loss: 856.913250\n",
      "  Epoch 16/20, Loss: 856.913250\n",
      "  Epoch 18/20, Loss: 860.047097\n",
      "  Epoch 18/20, Loss: 860.047097\n",
      "  Epoch 20/20, Loss: 865.484482\n",
      "股票 600600 训练完成，最佳损失: 856.913250\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600600.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600660 (60/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 865.484482\n",
      "股票 600600 训练完成，最佳损失: 856.913250\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600600.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600660 (60/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 426.850420\n",
      "  Epoch 1/20, Loss: 426.850420\n",
      "  Epoch 2/20, Loss: 283.377795\n",
      "  Epoch 2/20, Loss: 283.377795\n",
      "  Epoch 4/20, Loss: 246.418916\n",
      "  Epoch 4/20, Loss: 246.418916\n",
      "  Epoch 6/20, Loss: 248.812677\n",
      "  Epoch 6/20, Loss: 248.812677\n",
      "  Epoch 8/20, Loss: 251.722354\n",
      "  Epoch 8/20, Loss: 251.722354\n",
      "  Epoch 10/20, Loss: 252.462404\n",
      "  Epoch 10/20, Loss: 252.462404\n",
      "  Epoch 12/20, Loss: 254.096595\n",
      "  Epoch 12/20, Loss: 254.096595\n",
      "  Epoch 14/20, Loss: 252.436855\n",
      "  Epoch 14/20, Loss: 252.436855\n",
      "  Epoch 16/20, Loss: 253.341790\n",
      "  Epoch 16/20, Loss: 253.341790\n",
      "  Epoch 18/20, Loss: 252.903481\n",
      "  Epoch 18/20, Loss: 252.903481\n",
      "  Epoch 20/20, Loss: 253.325331\n",
      "股票 600660 训练完成，最佳损失: 246.418916\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600660.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600674 (61/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 253.325331\n",
      "股票 600660 训练完成，最佳损失: 246.418916\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600660.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600674 (61/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 17.932742\n",
      "  Epoch 1/20, Loss: 17.932742\n",
      "  Epoch 2/20, Loss: 19.626585\n",
      "  Epoch 2/20, Loss: 19.626585\n",
      "  Epoch 4/20, Loss: 16.801245\n",
      "  Epoch 4/20, Loss: 16.801245\n",
      "  Epoch 6/20, Loss: 18.050286\n",
      "  Epoch 6/20, Loss: 18.050286\n",
      "  Epoch 8/20, Loss: 16.737058\n",
      "  Epoch 8/20, Loss: 16.737058\n",
      "  Epoch 10/20, Loss: 15.877785\n",
      "  Epoch 10/20, Loss: 15.877785\n",
      "  Epoch 12/20, Loss: 16.032173\n",
      "  Epoch 12/20, Loss: 16.032173\n",
      "  Epoch 14/20, Loss: 15.922498\n",
      "  Epoch 14/20, Loss: 15.922498\n",
      "  Epoch 16/20, Loss: 19.056942\n",
      "  Epoch 16/20, Loss: 19.056942\n",
      "  Epoch 18/20, Loss: 14.899593\n",
      "  Epoch 18/20, Loss: 14.899593\n",
      "  Epoch 20/20, Loss: 15.208043\n",
      "股票 600674 训练完成，最佳损失: 14.818862\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600674.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600690 (62/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 15.208043\n",
      "股票 600674 训练完成，最佳损失: 14.818862\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_600674.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600690 (62/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 76.543488\n",
      "  Epoch 1/20, Loss: 76.543488\n",
      "  Epoch 2/20, Loss: 56.984895\n",
      "  Epoch 2/20, Loss: 56.984895\n",
      "  Epoch 4/20, Loss: 63.996160\n",
      "  Epoch 4/20, Loss: 63.996160\n",
      "  Epoch 6/20, Loss: 63.595831\n",
      "  Epoch 6/20, Loss: 63.595831\n",
      "  Epoch 8/20, Loss: 63.349609\n",
      "  Epoch 8/20, Loss: 63.349609\n",
      "  Epoch 10/20, Loss: 63.649379\n",
      "  Epoch 10/20, Loss: 63.649379\n",
      "  Epoch 12/20, Loss: 63.730499\n",
      "  Epoch 12/20, Loss: 63.730499\n",
      "  Epoch 14/20, Loss: 63.492513\n",
      "  Epoch 14/20, Loss: 63.492513\n",
      "  Epoch 16/20, Loss: 63.401483\n",
      "  Epoch 16/20, Loss: 63.401483\n",
      "  Epoch 18/20, Loss: 63.417608\n",
      "  Epoch 18/20, Loss: 63.417608\n",
      "  Epoch 20/20, Loss: 63.715561\n",
      "股票 600690 训练完成，最佳损失: 56.984895\n",
      "数据点数量: 2345, 模型保存至: ./../../model\\model_600690.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600741 (63/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 63.715561\n",
      "股票 600690 训练完成，最佳损失: 56.984895\n",
      "数据点数量: 2345, 模型保存至: ./../../model\\model_600690.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600741 (63/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 53.520770\n",
      "  Epoch 1/20, Loss: 53.520770\n",
      "  Epoch 2/20, Loss: 28.071314\n",
      "  Epoch 2/20, Loss: 28.071314\n",
      "  Epoch 4/20, Loss: 31.649839\n",
      "  Epoch 4/20, Loss: 31.649839\n",
      "  Epoch 6/20, Loss: 31.893405\n",
      "  Epoch 6/20, Loss: 31.893405\n",
      "  Epoch 8/20, Loss: 31.543529\n",
      "  Epoch 8/20, Loss: 31.543529\n",
      "  Epoch 10/20, Loss: 31.762761\n",
      "  Epoch 10/20, Loss: 31.762761\n",
      "  Epoch 12/20, Loss: 31.781248\n",
      "  Epoch 12/20, Loss: 31.781248\n",
      "  Epoch 14/20, Loss: 31.894709\n",
      "  Epoch 14/20, Loss: 31.894709\n",
      "  Epoch 16/20, Loss: 31.829104\n",
      "  Epoch 16/20, Loss: 31.829104\n",
      "  Epoch 18/20, Loss: 31.822586\n",
      "  Epoch 18/20, Loss: 31.822586\n",
      "  Epoch 20/20, Loss: 31.787152\n",
      "股票 600741 训练完成，最佳损失: 28.071314\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_600741.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600745 (64/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 31.787152\n",
      "股票 600741 训练完成，最佳损失: 28.071314\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_600741.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600745 (64/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3431.983004\n",
      "  Epoch 1/20, Loss: 3431.983004\n",
      "  Epoch 2/20, Loss: 2849.973537\n",
      "  Epoch 2/20, Loss: 2849.973537\n",
      "  Epoch 4/20, Loss: 2118.785617\n",
      "  Epoch 4/20, Loss: 2118.785617\n",
      "  Epoch 6/20, Loss: 1711.337549\n",
      "  Epoch 6/20, Loss: 1711.337549\n",
      "  Epoch 8/20, Loss: 1493.422690\n",
      "  Epoch 8/20, Loss: 1493.422690\n",
      "  Epoch 10/20, Loss: 1385.652632\n",
      "  Epoch 10/20, Loss: 1385.652632\n",
      "  Epoch 12/20, Loss: 1334.976657\n",
      "  Epoch 12/20, Loss: 1334.976657\n",
      "  Epoch 14/20, Loss: 1308.232170\n",
      "  Epoch 14/20, Loss: 1308.232170\n",
      "  Epoch 16/20, Loss: 1297.732398\n",
      "  Epoch 16/20, Loss: 1297.732398\n",
      "  Epoch 18/20, Loss: 1290.111077\n",
      "  Epoch 18/20, Loss: 1290.111077\n",
      "  Epoch 20/20, Loss: 1291.062273\n",
      "股票 600745 训练完成，最佳损失: 1287.302115\n",
      "数据点数量: 2072, 模型保存至: ./../../model\\model_600745.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600760 (65/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1291.062273\n",
      "股票 600745 训练完成，最佳损失: 1287.302115\n",
      "数据点数量: 2072, 模型保存至: ./../../model\\model_600745.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600760 (65/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 421.648097\n",
      "  Epoch 1/20, Loss: 421.648097\n",
      "  Epoch 2/20, Loss: 280.975798\n",
      "  Epoch 2/20, Loss: 280.975798\n",
      "  Epoch 4/20, Loss: 242.374206\n",
      "  Epoch 4/20, Loss: 242.374206\n",
      "  Epoch 6/20, Loss: 245.256993\n",
      "  Epoch 6/20, Loss: 245.256993\n",
      "  Epoch 8/20, Loss: 248.885227\n",
      "  Epoch 8/20, Loss: 248.885227\n",
      "  Epoch 10/20, Loss: 250.006533\n",
      "  Epoch 10/20, Loss: 250.006533\n",
      "  Epoch 12/20, Loss: 249.233927\n",
      "  Epoch 12/20, Loss: 249.233927\n",
      "  Epoch 14/20, Loss: 250.414910\n",
      "  Epoch 14/20, Loss: 250.414910\n",
      "  Epoch 16/20, Loss: 249.288727\n",
      "  Epoch 16/20, Loss: 249.288727\n",
      "  Epoch 18/20, Loss: 251.057953\n",
      "  Epoch 18/20, Loss: 251.057953\n",
      "  Epoch 20/20, Loss: 250.401907\n",
      "股票 600760 训练完成，最佳损失: 242.374206\n",
      "数据点数量: 2340, 模型保存至: ./../../model\\model_600760.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600795 (66/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 250.401907\n",
      "股票 600760 训练完成，最佳损失: 242.374206\n",
      "数据点数量: 2340, 模型保存至: ./../../model\\model_600760.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600795 (66/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.990947\n",
      "  Epoch 1/20, Loss: 1.990947\n",
      "  Epoch 2/20, Loss: 1.932159\n",
      "  Epoch 2/20, Loss: 1.932159\n",
      "  Epoch 4/20, Loss: 0.298597\n",
      "  Epoch 4/20, Loss: 0.298597\n",
      "  Epoch 6/20, Loss: 0.332688\n",
      "  Epoch 6/20, Loss: 0.332688\n",
      "  Epoch 8/20, Loss: 0.340676\n",
      "  Epoch 8/20, Loss: 0.340676\n",
      "  Epoch 10/20, Loss: 0.119773\n",
      "  Epoch 10/20, Loss: 0.119773\n",
      "  Epoch 12/20, Loss: 0.079026\n",
      "  Epoch 12/20, Loss: 0.079026\n",
      "  Epoch 14/20, Loss: 0.056109\n",
      "  Epoch 14/20, Loss: 0.056109\n",
      "  Epoch 16/20, Loss: 0.093305\n",
      "  Epoch 16/20, Loss: 0.093305\n",
      "  Epoch 18/20, Loss: 0.218461\n",
      "  Epoch 18/20, Loss: 0.218461\n",
      "  Epoch 20/20, Loss: 0.286027\n",
      "股票 600795 训练完成，最佳损失: 0.056109\n",
      "数据点数量: 2358, 模型保存至: ./../../model\\model_600795.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600803 (67/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.286027\n",
      "股票 600795 训练完成，最佳损失: 0.056109\n",
      "数据点数量: 2358, 模型保存至: ./../../model\\model_600795.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600803 (67/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 30.923647\n",
      "  Epoch 1/20, Loss: 30.923647\n",
      "  Epoch 2/20, Loss: 21.997105\n",
      "  Epoch 2/20, Loss: 21.997105\n",
      "  Epoch 4/20, Loss: 20.899926\n",
      "  Epoch 4/20, Loss: 20.899926\n",
      "  Epoch 6/20, Loss: 20.891011\n",
      "  Epoch 6/20, Loss: 20.891011\n",
      "  Epoch 8/20, Loss: 20.731226\n",
      "  Epoch 8/20, Loss: 20.731226\n",
      "  Epoch 10/20, Loss: 20.748936\n",
      "  Epoch 10/20, Loss: 20.748936\n",
      "  Epoch 12/20, Loss: 20.911489\n",
      "  Epoch 12/20, Loss: 20.911489\n",
      "  Epoch 14/20, Loss: 20.845349\n",
      "  Epoch 14/20, Loss: 20.845349\n",
      "  Epoch 16/20, Loss: 20.500500\n",
      "  Epoch 16/20, Loss: 20.500500\n",
      "  Epoch 18/20, Loss: 21.912913\n",
      "  Epoch 18/20, Loss: 21.912913\n",
      "  Epoch 20/20, Loss: 13.854359\n",
      "股票 600803 训练完成，最佳损失: 11.997088\n",
      "数据点数量: 2359, 模型保存至: ./../../model\\model_600803.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600809 (68/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 13.854359\n",
      "股票 600803 训练完成，最佳损失: 11.997088\n",
      "数据点数量: 2359, 模型保存至: ./../../model\\model_600803.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600809 (68/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 25398.211588\n",
      "  Epoch 1/20, Loss: 25398.211588\n",
      "  Epoch 2/20, Loss: 23830.524994\n",
      "  Epoch 2/20, Loss: 23830.524994\n",
      "  Epoch 4/20, Loss: 21873.964770\n",
      "  Epoch 4/20, Loss: 21873.964770\n",
      "  Epoch 6/20, Loss: 20947.265765\n",
      "  Epoch 6/20, Loss: 20947.265765\n",
      "  Epoch 8/20, Loss: 20832.930494\n",
      "  Epoch 8/20, Loss: 20832.930494\n",
      "  Epoch 10/20, Loss: 20869.483381\n",
      "  Epoch 10/20, Loss: 20869.483381\n",
      "  Epoch 12/20, Loss: 20160.672329\n",
      "  Epoch 12/20, Loss: 20160.672329\n",
      "  Epoch 14/20, Loss: 19210.425047\n",
      "  Epoch 14/20, Loss: 19210.425047\n",
      "  Epoch 16/20, Loss: 18025.043033\n",
      "  Epoch 16/20, Loss: 18025.043033\n",
      "  Epoch 18/20, Loss: 18049.343303\n",
      "  Epoch 18/20, Loss: 18049.343303\n",
      "  Epoch 20/20, Loss: 16924.206786\n",
      "股票 600809 训练完成，最佳损失: 16924.206786\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_600809.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600845 (69/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 16924.206786\n",
      "股票 600809 训练完成，最佳损失: 16924.206786\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_600809.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600845 (69/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 247.387920\n",
      "  Epoch 1/20, Loss: 247.387920\n",
      "  Epoch 2/20, Loss: 189.688689\n",
      "  Epoch 2/20, Loss: 189.688689\n",
      "  Epoch 4/20, Loss: 155.295704\n",
      "  Epoch 4/20, Loss: 155.295704\n",
      "  Epoch 6/20, Loss: 111.249557\n",
      "  Epoch 6/20, Loss: 111.249557\n",
      "  Epoch 8/20, Loss: 68.671245\n",
      "  Epoch 8/20, Loss: 68.671245\n",
      "  Epoch 10/20, Loss: 44.432090\n",
      "  Epoch 10/20, Loss: 44.432090\n",
      "  Epoch 12/20, Loss: 39.694837\n",
      "  Epoch 12/20, Loss: 39.694837\n",
      "  Epoch 14/20, Loss: 27.676206\n",
      "  Epoch 14/20, Loss: 27.676206\n",
      "  Epoch 16/20, Loss: 21.725489\n",
      "  Epoch 16/20, Loss: 21.725489\n",
      "  Epoch 18/20, Loss: 16.104702\n",
      "  Epoch 18/20, Loss: 16.104702\n",
      "  Epoch 20/20, Loss: 11.961673\n",
      "股票 600845 训练完成，最佳损失: 11.961673\n",
      "数据点数量: 2417, 模型保存至: ./../../model\\model_600845.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600875 (70/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 11.961673\n",
      "股票 600845 训练完成，最佳损失: 11.961673\n",
      "数据点数量: 2417, 模型保存至: ./../../model\\model_600845.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600875 (70/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 46.780657\n",
      "  Epoch 1/20, Loss: 46.780657\n",
      "  Epoch 2/20, Loss: 25.073282\n",
      "  Epoch 2/20, Loss: 25.073282\n",
      "  Epoch 4/20, Loss: 25.720774\n",
      "  Epoch 4/20, Loss: 25.720774\n",
      "  Epoch 6/20, Loss: 26.725006\n",
      "  Epoch 6/20, Loss: 26.725006\n",
      "  Epoch 8/20, Loss: 25.484970\n",
      "  Epoch 8/20, Loss: 25.484970\n",
      "  Epoch 10/20, Loss: 13.529203\n",
      "  Epoch 10/20, Loss: 13.529203\n",
      "  Epoch 12/20, Loss: 7.789543\n",
      "  Epoch 12/20, Loss: 7.789543\n",
      "  Epoch 14/20, Loss: 8.153965\n",
      "  Epoch 14/20, Loss: 8.153965\n",
      "  Epoch 16/20, Loss: 7.845268\n",
      "  Epoch 16/20, Loss: 7.845268\n",
      "  Epoch 18/20, Loss: 6.968896\n",
      "  Epoch 18/20, Loss: 6.968896\n",
      "  Epoch 20/20, Loss: 5.956735\n",
      "股票 600875 训练完成，最佳损失: 5.956735\n",
      "数据点数量: 2346, 模型保存至: ./../../model\\model_600875.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600886 (71/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 5.956735\n",
      "股票 600875 训练完成，最佳损失: 5.956735\n",
      "数据点数量: 2346, 模型保存至: ./../../model\\model_600875.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600886 (71/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 10.110799\n",
      "  Epoch 1/20, Loss: 10.110799\n",
      "  Epoch 2/20, Loss: 19.544183\n",
      "  Epoch 2/20, Loss: 19.544183\n",
      "  Epoch 4/20, Loss: 14.237607\n",
      "  Epoch 4/20, Loss: 14.237607\n",
      "  Epoch 6/20, Loss: 14.413551\n",
      "  Epoch 6/20, Loss: 14.413551\n",
      "  Epoch 8/20, Loss: 14.234361\n",
      "  Epoch 8/20, Loss: 14.234361\n",
      "  Epoch 10/20, Loss: 14.283420\n",
      "  Epoch 10/20, Loss: 14.283420\n",
      "  Epoch 12/20, Loss: 14.321474\n",
      "  Epoch 12/20, Loss: 14.321474\n",
      "  Epoch 14/20, Loss: 14.839491\n",
      "  Epoch 14/20, Loss: 14.839491\n",
      "  Epoch 16/20, Loss: 14.739270\n",
      "  Epoch 16/20, Loss: 14.739270\n",
      "  Epoch 18/20, Loss: 13.252258\n",
      "  Epoch 18/20, Loss: 13.252258\n",
      "  Epoch 20/20, Loss: 13.603868\n",
      "股票 600886 训练完成，最佳损失: 10.110799\n",
      "数据点数量: 2362, 模型保存至: ./../../model\\model_600886.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600887 (72/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 13.603868\n",
      "股票 600886 训练完成，最佳损失: 10.110799\n",
      "数据点数量: 2362, 模型保存至: ./../../model\\model_600886.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600887 (72/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 210.066723\n",
      "  Epoch 1/20, Loss: 210.066723\n",
      "  Epoch 2/20, Loss: 96.113797\n",
      "  Epoch 2/20, Loss: 96.113797\n",
      "  Epoch 4/20, Loss: 85.255854\n",
      "  Epoch 4/20, Loss: 85.255854\n",
      "  Epoch 6/20, Loss: 87.953388\n",
      "  Epoch 6/20, Loss: 87.953388\n",
      "  Epoch 8/20, Loss: 88.464073\n",
      "  Epoch 8/20, Loss: 88.464073\n",
      "  Epoch 10/20, Loss: 88.525654\n",
      "  Epoch 10/20, Loss: 88.525654\n",
      "  Epoch 12/20, Loss: 88.903988\n",
      "  Epoch 12/20, Loss: 88.903988\n",
      "  Epoch 14/20, Loss: 89.029814\n",
      "  Epoch 14/20, Loss: 89.029814\n",
      "  Epoch 16/20, Loss: 88.563409\n",
      "  Epoch 16/20, Loss: 88.563409\n",
      "  Epoch 18/20, Loss: 88.831188\n",
      "  Epoch 18/20, Loss: 88.831188\n",
      "  Epoch 20/20, Loss: 88.859353\n",
      "股票 600887 训练完成，最佳损失: 82.864439\n",
      "数据点数量: 2398, 模型保存至: ./../../model\\model_600887.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600893 (73/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 88.859353\n",
      "股票 600887 训练完成，最佳损失: 82.864439\n",
      "数据点数量: 2398, 模型保存至: ./../../model\\model_600887.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600893 (73/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 832.650731\n",
      "  Epoch 1/20, Loss: 832.650731\n",
      "  Epoch 2/20, Loss: 421.128803\n",
      "  Epoch 2/20, Loss: 421.128803\n",
      "  Epoch 4/20, Loss: 178.210014\n",
      "  Epoch 4/20, Loss: 178.210014\n",
      "  Epoch 6/20, Loss: 143.374198\n",
      "  Epoch 6/20, Loss: 143.374198\n",
      "  Epoch 8/20, Loss: 141.199618\n",
      "  Epoch 8/20, Loss: 141.199618\n",
      "  Epoch 10/20, Loss: 142.507035\n",
      "  Epoch 10/20, Loss: 142.507035\n",
      "  Epoch 12/20, Loss: 142.567199\n",
      "  Epoch 12/20, Loss: 142.567199\n",
      "  Epoch 14/20, Loss: 142.389110\n",
      "  Epoch 14/20, Loss: 142.389110\n",
      "  Epoch 16/20, Loss: 142.089656\n",
      "  Epoch 16/20, Loss: 142.089656\n",
      "  Epoch 18/20, Loss: 143.138564\n",
      "  Epoch 18/20, Loss: 143.138564\n",
      "  Epoch 20/20, Loss: 142.591518\n",
      "股票 600893 训练完成，最佳损失: 141.062521\n",
      "数据点数量: 2387, 模型保存至: ./../../model\\model_600893.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600900 (74/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 142.591518\n",
      "股票 600893 训练完成，最佳损失: 141.062521\n",
      "数据点数量: 2387, 模型保存至: ./../../model\\model_600893.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600900 (74/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 42.298339\n",
      "  Epoch 1/20, Loss: 42.298339\n",
      "  Epoch 2/20, Loss: 51.386574\n",
      "  Epoch 2/20, Loss: 51.386574\n",
      "  Epoch 4/20, Loss: 51.024737\n",
      "  Epoch 4/20, Loss: 51.024737\n",
      "  Epoch 6/20, Loss: 50.967945\n",
      "  Epoch 6/20, Loss: 50.967945\n",
      "  Epoch 8/20, Loss: 51.263459\n",
      "  Epoch 8/20, Loss: 51.263459\n",
      "  Epoch 10/20, Loss: 51.093333\n",
      "  Epoch 10/20, Loss: 51.093333\n",
      "  Epoch 12/20, Loss: 50.926839\n",
      "  Epoch 12/20, Loss: 50.926839\n",
      "  Epoch 14/20, Loss: 50.961422\n",
      "  Epoch 14/20, Loss: 50.961422\n",
      "  Epoch 16/20, Loss: 51.073999\n",
      "  Epoch 16/20, Loss: 51.073999\n",
      "  Epoch 18/20, Loss: 50.862290\n",
      "  Epoch 18/20, Loss: 50.862290\n",
      "  Epoch 20/20, Loss: 50.953876\n",
      "股票 600900 训练完成，最佳损失: 42.298339\n",
      "数据点数量: 2303, 模型保存至: ./../../model\\model_600900.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600905 (75/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 50.953876\n",
      "股票 600900 训练完成，最佳损失: 42.298339\n",
      "数据点数量: 2303, 模型保存至: ./../../model\\model_600900.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600905 (75/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 11.967361\n",
      "  Epoch 2/20, Loss: 0.560088\n",
      "  Epoch 1/20, Loss: 11.967361\n",
      "  Epoch 2/20, Loss: 0.560088\n",
      "  Epoch 4/20, Loss: 0.463727\n",
      "  Epoch 4/20, Loss: 0.463727\n",
      "  Epoch 6/20, Loss: 0.292805\n",
      "  Epoch 6/20, Loss: 0.292805\n",
      "  Epoch 8/20, Loss: 0.162426\n",
      "  Epoch 8/20, Loss: 0.162426\n",
      "  Epoch 10/20, Loss: 0.178699\n",
      "  Epoch 10/20, Loss: 0.178699\n",
      "  Epoch 12/20, Loss: 0.222192\n",
      "  Epoch 12/20, Loss: 0.222192\n",
      "  Epoch 14/20, Loss: 0.141759\n",
      "  Epoch 14/20, Loss: 0.141759\n",
      "  Epoch 16/20, Loss: 0.275410\n",
      "  Epoch 16/20, Loss: 0.275410\n",
      "  Epoch 18/20, Loss: 0.189573\n",
      "  Epoch 18/20, Loss: 0.189573\n",
      "  Epoch 20/20, Loss: 0.160583\n",
      "股票 600905 训练完成，最佳损失: 0.141759\n",
      "数据点数量: 925, 模型保存至: ./../../model\\model_600905.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600918 (76/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.160583\n",
      "股票 600905 训练完成，最佳损失: 0.141759\n",
      "数据点数量: 925, 模型保存至: ./../../model\\model_600905.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600918 (76/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 45.228472\n",
      "  Epoch 1/20, Loss: 45.228472\n",
      "  Epoch 2/20, Loss: 12.449324\n",
      "  Epoch 2/20, Loss: 12.449324\n",
      "  Epoch 4/20, Loss: 11.608713\n",
      "  Epoch 4/20, Loss: 11.608713\n",
      "  Epoch 6/20, Loss: 5.410593\n",
      "  Epoch 6/20, Loss: 5.410593\n",
      "  Epoch 8/20, Loss: 4.112524\n",
      "  Epoch 8/20, Loss: 4.112524\n",
      "  Epoch 10/20, Loss: 2.738755\n",
      "  Epoch 10/20, Loss: 2.738755\n",
      "  Epoch 12/20, Loss: 2.318154\n",
      "  Epoch 12/20, Loss: 2.318154\n",
      "  Epoch 14/20, Loss: 1.906503\n",
      "  Epoch 14/20, Loss: 1.906503\n",
      "  Epoch 16/20, Loss: 2.284744\n",
      "  Epoch 16/20, Loss: 2.284744\n",
      "  Epoch 18/20, Loss: 1.251660\n",
      "  Epoch 18/20, Loss: 1.251660\n",
      "  Epoch 20/20, Loss: 1.029905\n",
      "股票 600918 训练完成，最佳损失: 0.952176\n",
      "数据点数量: 1173, 模型保存至: ./../../model\\model_600918.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600919 (77/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.029905\n",
      "股票 600918 训练完成，最佳损失: 0.952176\n",
      "数据点数量: 1173, 模型保存至: ./../../model\\model_600918.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600919 (77/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 5.470992\n",
      "  Epoch 1/20, Loss: 5.470992\n",
      "  Epoch 2/20, Loss: 4.776092\n",
      "  Epoch 2/20, Loss: 4.776092\n",
      "  Epoch 4/20, Loss: 0.632253\n",
      "  Epoch 4/20, Loss: 0.632253\n",
      "  Epoch 6/20, Loss: 0.807211\n",
      "  Epoch 6/20, Loss: 0.807211\n",
      "  Epoch 8/20, Loss: 0.721975\n",
      "  Epoch 8/20, Loss: 0.721975\n",
      "  Epoch 10/20, Loss: 0.900896\n",
      "  Epoch 10/20, Loss: 0.900896\n",
      "  Epoch 12/20, Loss: 0.573455\n",
      "  Epoch 12/20, Loss: 0.573455\n",
      "  Epoch 14/20, Loss: 0.256484\n",
      "  Epoch 14/20, Loss: 0.256484\n",
      "  Epoch 16/20, Loss: 0.262154\n",
      "  Epoch 16/20, Loss: 0.262154\n",
      "  Epoch 18/20, Loss: 0.402904\n",
      "  Epoch 18/20, Loss: 0.402904\n",
      "  Epoch 20/20, Loss: 0.146712\n",
      "股票 600919 训练完成，最佳损失: 0.146712\n",
      "数据点数量: 2099, 模型保存至: ./../../model\\model_600919.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600926 (78/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.146712\n",
      "股票 600919 训练完成，最佳损失: 0.146712\n",
      "数据点数量: 2099, 模型保存至: ./../../model\\model_600919.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600926 (78/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 17.278722\n",
      "  Epoch 1/20, Loss: 17.278722\n",
      "  Epoch 2/20, Loss: 14.307102\n",
      "  Epoch 2/20, Loss: 14.307102\n",
      "  Epoch 4/20, Loss: 12.613865\n",
      "  Epoch 4/20, Loss: 12.613865\n",
      "  Epoch 6/20, Loss: 12.808697\n",
      "  Epoch 6/20, Loss: 12.808697\n",
      "  Epoch 8/20, Loss: 12.672976\n",
      "  Epoch 8/20, Loss: 12.672976\n",
      "  Epoch 10/20, Loss: 12.734869\n",
      "  Epoch 10/20, Loss: 12.734869\n",
      "  Epoch 12/20, Loss: 12.832235\n",
      "  Epoch 12/20, Loss: 12.832235\n",
      "  Epoch 14/20, Loss: 13.050274\n",
      "  Epoch 14/20, Loss: 13.050274\n",
      "  Epoch 16/20, Loss: 12.600868\n",
      "  Epoch 16/20, Loss: 12.600868\n",
      "  Epoch 18/20, Loss: 12.884205\n",
      "  Epoch 18/20, Loss: 12.884205\n",
      "  Epoch 20/20, Loss: 12.699548\n",
      "股票 600926 训练完成，最佳损失: 12.600868\n",
      "数据点数量: 2050, 模型保存至: ./../../model\\model_600926.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600938 (79/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 253.568396\n",
      "  Epoch 20/20, Loss: 12.699548\n",
      "股票 600926 训练完成，最佳损失: 12.600868\n",
      "数据点数量: 2050, 模型保存至: ./../../model\\model_600926.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600938 (79/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 253.568396\n",
      "  Epoch 2/20, Loss: 125.719501\n",
      "  Epoch 2/20, Loss: 125.719501\n",
      "  Epoch 4/20, Loss: 59.745684\n",
      "  Epoch 4/20, Loss: 59.745684\n",
      "  Epoch 6/20, Loss: 41.361620\n",
      "  Epoch 6/20, Loss: 41.361620\n",
      "  Epoch 8/20, Loss: 39.592638\n",
      "  Epoch 8/20, Loss: 39.592638\n",
      "  Epoch 10/20, Loss: 40.539704\n",
      "  Epoch 10/20, Loss: 40.539704\n",
      "  Epoch 12/20, Loss: 40.254672\n",
      "  Epoch 12/20, Loss: 40.254672\n",
      "  Epoch 14/20, Loss: 41.074207\n",
      "  Epoch 14/20, Loss: 41.074207\n",
      "  Epoch 16/20, Loss: 40.655278\n",
      "  Epoch 16/20, Loss: 40.655278\n",
      "  Epoch 18/20, Loss: 40.717951\n",
      "  Epoch 18/20, Loss: 40.717951\n",
      "  Epoch 20/20, Loss: 40.161410\n",
      "股票 600938 训练完成，最佳损失: 39.461952\n",
      "数据点数量: 716, 模型保存至: ./../../model\\model_600938.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600941 (80/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6464.906588\n",
      "  Epoch 20/20, Loss: 40.161410\n",
      "股票 600938 训练完成，最佳损失: 39.461952\n",
      "数据点数量: 716, 模型保存至: ./../../model\\model_600938.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600941 (80/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6464.906588\n",
      "  Epoch 2/20, Loss: 5748.277870\n",
      "  Epoch 2/20, Loss: 5748.277870\n",
      "  Epoch 4/20, Loss: 4884.658494\n",
      "  Epoch 4/20, Loss: 4884.658494\n",
      "  Epoch 6/20, Loss: 4144.652104\n",
      "  Epoch 6/20, Loss: 4144.652104\n",
      "  Epoch 8/20, Loss: 3510.311350\n",
      "  Epoch 8/20, Loss: 3510.311350\n",
      "  Epoch 10/20, Loss: 2972.353732\n",
      "  Epoch 10/20, Loss: 2972.353732\n",
      "  Epoch 12/20, Loss: 2514.753322\n",
      "  Epoch 12/20, Loss: 2514.753322\n",
      "  Epoch 14/20, Loss: 2115.359893\n",
      "  Epoch 14/20, Loss: 2115.359893\n",
      "  Epoch 16/20, Loss: 1794.406597\n",
      "  Epoch 16/20, Loss: 1794.406597\n",
      "  Epoch 18/20, Loss: 1533.329077\n",
      "  Epoch 18/20, Loss: 1533.329077\n",
      "  Epoch 20/20, Loss: 1315.361339\n",
      "股票 600941 训练完成，最佳损失: 1315.361339\n",
      "数据点数量: 785, 模型保存至: ./../../model\\model_600941.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600958 (81/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1315.361339\n",
      "股票 600941 训练完成，最佳损失: 1315.361339\n",
      "数据点数量: 785, 模型保存至: ./../../model\\model_600941.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600958 (81/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 43.279602\n",
      "  Epoch 1/20, Loss: 43.279602\n",
      "  Epoch 2/20, Loss: 14.609219\n",
      "  Epoch 2/20, Loss: 14.609219\n",
      "  Epoch 4/20, Loss: 13.931417\n",
      "  Epoch 4/20, Loss: 13.931417\n",
      "  Epoch 6/20, Loss: 6.638011\n",
      "  Epoch 6/20, Loss: 6.638011\n",
      "  Epoch 8/20, Loss: 4.517063\n",
      "  Epoch 8/20, Loss: 4.517063\n",
      "  Epoch 10/20, Loss: 3.291435\n",
      "  Epoch 10/20, Loss: 3.291435\n",
      "  Epoch 12/20, Loss: 2.841519\n",
      "  Epoch 12/20, Loss: 2.841519\n",
      "  Epoch 14/20, Loss: 2.483268\n",
      "  Epoch 14/20, Loss: 2.483268\n",
      "  Epoch 16/20, Loss: 2.809671\n",
      "  Epoch 16/20, Loss: 2.809671\n",
      "  Epoch 18/20, Loss: 2.781168\n",
      "  Epoch 18/20, Loss: 2.781168\n",
      "  Epoch 20/20, Loss: 2.349260\n",
      "股票 600958 训练完成，最佳损失: 2.349260\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_600958.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600989 (82/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 2.349260\n",
      "股票 600958 训练完成，最佳损失: 2.349260\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_600958.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600989 (82/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 34.465721\n",
      "  Epoch 1/20, Loss: 34.465721\n",
      "  Epoch 2/20, Loss: 7.989368\n",
      "  Epoch 2/20, Loss: 7.989368\n",
      "  Epoch 4/20, Loss: 10.279260\n",
      "  Epoch 4/20, Loss: 10.279260\n",
      "  Epoch 6/20, Loss: 10.058999\n",
      "  Epoch 6/20, Loss: 10.058999\n",
      "  Epoch 8/20, Loss: 10.203275\n",
      "  Epoch 8/20, Loss: 10.203275\n",
      "  Epoch 10/20, Loss: 9.995510\n",
      "  Epoch 10/20, Loss: 9.995510\n",
      "  Epoch 12/20, Loss: 10.147424\n",
      "  Epoch 12/20, Loss: 10.147424\n",
      "  Epoch 14/20, Loss: 10.045080\n",
      "  Epoch 14/20, Loss: 10.045080\n",
      "  Epoch 16/20, Loss: 10.145920\n",
      "  Epoch 16/20, Loss: 10.145920\n",
      "  Epoch 18/20, Loss: 10.104721\n",
      "  Epoch 18/20, Loss: 10.104721\n",
      "  Epoch 20/20, Loss: 10.168571\n",
      "股票 600989 训练完成，最佳损失: 7.989368\n",
      "数据点数量: 1429, 模型保存至: ./../../model\\model_600989.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600999 (83/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 10.168571\n",
      "股票 600989 训练完成，最佳损失: 7.989368\n",
      "数据点数量: 1429, 模型保存至: ./../../model\\model_600989.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 600999 (83/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 37.627106\n",
      "  Epoch 1/20, Loss: 37.627106\n",
      "  Epoch 2/20, Loss: 11.027462\n",
      "  Epoch 2/20, Loss: 11.027462\n",
      "  Epoch 4/20, Loss: 10.723400\n",
      "  Epoch 4/20, Loss: 10.723400\n",
      "  Epoch 6/20, Loss: 10.644961\n",
      "  Epoch 6/20, Loss: 10.644961\n",
      "  Epoch 8/20, Loss: 10.741224\n",
      "  Epoch 8/20, Loss: 10.741224\n",
      "  Epoch 10/20, Loss: 10.572250\n",
      "  Epoch 10/20, Loss: 10.572250\n",
      "  Epoch 12/20, Loss: 10.619853\n",
      "  Epoch 12/20, Loss: 10.619853\n",
      "  Epoch 14/20, Loss: 10.730868\n",
      "  Epoch 14/20, Loss: 10.730868\n",
      "  Epoch 16/20, Loss: 10.793509\n",
      "  Epoch 16/20, Loss: 10.793509\n",
      "  Epoch 18/20, Loss: 10.582196\n",
      "  Epoch 18/20, Loss: 10.582196\n",
      "  Epoch 20/20, Loss: 10.715482\n",
      "股票 600999 训练完成，最佳损失: 10.553650\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_600999.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601006 (84/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 10.715482\n",
      "股票 600999 训练完成，最佳损失: 10.553650\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_600999.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601006 (84/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3.478562\n",
      "  Epoch 1/20, Loss: 3.478562\n",
      "  Epoch 2/20, Loss: 2.881564\n",
      "  Epoch 2/20, Loss: 2.881564\n",
      "  Epoch 4/20, Loss: 0.563535\n",
      "  Epoch 4/20, Loss: 0.563535\n",
      "  Epoch 6/20, Loss: 0.368907\n",
      "  Epoch 6/20, Loss: 0.368907\n",
      "  Epoch 8/20, Loss: 0.227284\n",
      "  Epoch 8/20, Loss: 0.227284\n",
      "  Epoch 10/20, Loss: 0.219098\n",
      "  Epoch 10/20, Loss: 0.219098\n",
      "  Epoch 12/20, Loss: 0.149782\n",
      "  Epoch 12/20, Loss: 0.149782\n",
      "  Epoch 14/20, Loss: 0.169744\n",
      "  Epoch 14/20, Loss: 0.169744\n",
      "  Epoch 16/20, Loss: 0.186369\n",
      "  Epoch 16/20, Loss: 0.186369\n",
      "  Epoch 18/20, Loss: 0.186543\n",
      "  Epoch 18/20, Loss: 0.186543\n",
      "  Epoch 20/20, Loss: 0.270999\n",
      "股票 601006 训练完成，最佳损失: 0.149782\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601006.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601009 (85/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.270999\n",
      "股票 601006 训练完成，最佳损失: 0.149782\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601006.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601009 (85/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.874349\n",
      "  Epoch 1/20, Loss: 1.874349\n",
      "  Epoch 2/20, Loss: 11.073572\n",
      "  Epoch 2/20, Loss: 11.073572\n",
      "  Epoch 4/20, Loss: 6.891068\n",
      "  Epoch 4/20, Loss: 6.891068\n",
      "  Epoch 6/20, Loss: 6.753383\n",
      "  Epoch 6/20, Loss: 6.753383\n",
      "  Epoch 8/20, Loss: 6.728080\n",
      "  Epoch 8/20, Loss: 6.728080\n",
      "  Epoch 10/20, Loss: 6.754295\n",
      "  Epoch 10/20, Loss: 6.754295\n",
      "  Epoch 12/20, Loss: 6.757646\n",
      "  Epoch 12/20, Loss: 6.757646\n",
      "  Epoch 14/20, Loss: 6.715940\n",
      "  Epoch 14/20, Loss: 6.715940\n",
      "  Epoch 16/20, Loss: 6.698488\n",
      "  Epoch 16/20, Loss: 6.698488\n",
      "  Epoch 18/20, Loss: 6.828117\n",
      "  Epoch 18/20, Loss: 6.828117\n",
      "  Epoch 20/20, Loss: 6.743969\n",
      "股票 601009 训练完成，最佳损失: 1.874349\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_601009.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601012 (86/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 6.743969\n",
      "股票 601009 训练完成，最佳损失: 1.874349\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_601009.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601012 (86/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 474.669859\n",
      "  Epoch 1/20, Loss: 474.669859\n",
      "  Epoch 2/20, Loss: 425.480554\n",
      "  Epoch 2/20, Loss: 425.480554\n",
      "  Epoch 4/20, Loss: 417.911761\n",
      "  Epoch 4/20, Loss: 417.911761\n",
      "  Epoch 6/20, Loss: 351.823075\n",
      "  Epoch 6/20, Loss: 351.823075\n",
      "  Epoch 8/20, Loss: 322.378244\n",
      "  Epoch 8/20, Loss: 322.378244\n",
      "  Epoch 10/20, Loss: 332.883083\n",
      "  Epoch 10/20, Loss: 332.883083\n",
      "  Epoch 12/20, Loss: 295.619308\n",
      "  Epoch 12/20, Loss: 295.619308\n",
      "  Epoch 14/20, Loss: 257.320231\n",
      "  Epoch 14/20, Loss: 257.320231\n",
      "  Epoch 16/20, Loss: 226.171970\n",
      "  Epoch 16/20, Loss: 226.171970\n",
      "  Epoch 18/20, Loss: 193.272545\n",
      "  Epoch 18/20, Loss: 193.272545\n",
      "  Epoch 20/20, Loss: 162.994904\n",
      "股票 601012 训练完成，最佳损失: 162.994904\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_601012.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601021 (87/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 162.994904\n",
      "股票 601012 训练完成，最佳损失: 162.994904\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_601012.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601021 (87/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1394.767246\n",
      "  Epoch 1/20, Loss: 1394.767246\n",
      "  Epoch 2/20, Loss: 752.863789\n",
      "  Epoch 2/20, Loss: 752.863789\n",
      "  Epoch 4/20, Loss: 250.937552\n",
      "  Epoch 4/20, Loss: 250.937552\n",
      "  Epoch 6/20, Loss: 127.650412\n",
      "  Epoch 6/20, Loss: 127.650412\n",
      "  Epoch 8/20, Loss: 109.506384\n",
      "  Epoch 8/20, Loss: 109.506384\n",
      "  Epoch 10/20, Loss: 108.441006\n",
      "  Epoch 10/20, Loss: 108.441006\n",
      "  Epoch 12/20, Loss: 109.028225\n",
      "  Epoch 12/20, Loss: 109.028225\n",
      "  Epoch 14/20, Loss: 109.572018\n",
      "  Epoch 14/20, Loss: 109.572018\n",
      "  Epoch 16/20, Loss: 110.145802\n",
      "  Epoch 16/20, Loss: 110.145802\n",
      "  Epoch 18/20, Loss: 110.439931\n",
      "  Epoch 18/20, Loss: 110.439931\n",
      "  Epoch 20/20, Loss: 110.577709\n",
      "股票 601021 训练完成，最佳损失: 108.149398\n",
      "数据点数量: 2398, 模型保存至: ./../../model\\model_601021.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601058 (88/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 110.577709\n",
      "股票 601021 训练完成，最佳损失: 108.149398\n",
      "数据点数量: 2398, 模型保存至: ./../../model\\model_601021.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601058 (88/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 19.208949\n",
      "  Epoch 1/20, Loss: 19.208949\n",
      "  Epoch 2/20, Loss: 20.976487\n",
      "  Epoch 2/20, Loss: 20.976487\n",
      "  Epoch 4/20, Loss: 2.948032\n",
      "  Epoch 4/20, Loss: 2.948032\n",
      "  Epoch 6/20, Loss: 3.034145\n",
      "  Epoch 6/20, Loss: 3.034145\n",
      "  Epoch 8/20, Loss: 2.210557\n",
      "  Epoch 8/20, Loss: 2.210557\n",
      "  Epoch 10/20, Loss: 2.696121\n",
      "  Epoch 10/20, Loss: 2.696121\n",
      "  Epoch 12/20, Loss: 1.311821\n",
      "  Epoch 12/20, Loss: 1.311821\n",
      "  Epoch 14/20, Loss: 3.546090\n",
      "  Epoch 14/20, Loss: 3.546090\n",
      "  Epoch 16/20, Loss: 0.867026\n",
      "  Epoch 16/20, Loss: 0.867026\n",
      "  Epoch 18/20, Loss: 0.575030\n",
      "  Epoch 18/20, Loss: 0.575030\n",
      "  Epoch 20/20, Loss: 0.479189\n",
      "股票 601058 训练完成，最佳损失: 0.479189\n",
      "数据点数量: 2405, 模型保存至: ./../../model\\model_601058.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601059 (89/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 159.391276\n",
      "  Epoch 20/20, Loss: 0.479189\n",
      "股票 601058 训练完成，最佳损失: 0.479189\n",
      "数据点数量: 2405, 模型保存至: ./../../model\\model_601058.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601059 (89/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 159.391276\n",
      "  Epoch 2/20, Loss: 34.961267\n",
      "  Epoch 2/20, Loss: 34.961267\n",
      "  Epoch 4/20, Loss: 6.464110\n",
      "  Epoch 4/20, Loss: 6.464110\n",
      "  Epoch 6/20, Loss: 4.018882\n",
      "  Epoch 6/20, Loss: 4.018882\n",
      "  Epoch 8/20, Loss: 3.653935\n",
      "  Epoch 8/20, Loss: 3.653935\n",
      "  Epoch 10/20, Loss: 3.708619\n",
      "  Epoch 10/20, Loss: 3.708619\n",
      "  Epoch 12/20, Loss: 3.618022\n",
      "  Epoch 12/20, Loss: 3.618022\n",
      "  Epoch 14/20, Loss: 3.804247\n",
      "  Epoch 14/20, Loss: 3.804247\n",
      "  Epoch 16/20, Loss: 3.968124\n",
      "  Epoch 16/20, Loss: 3.968124\n",
      "  Epoch 18/20, Loss: 3.677527\n",
      "  Epoch 18/20, Loss: 3.677527\n",
      "  Epoch 20/20, Loss: 3.909455\n",
      "股票 601059 训练完成，最佳损失: 3.616692\n",
      "数据点数量: 528, 模型保存至: ./../../model\\model_601059.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601066 (90/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 3.909455\n",
      "股票 601059 训练完成，最佳损失: 3.616692\n",
      "数据点数量: 528, 模型保存至: ./../../model\\model_601059.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601066 (90/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 342.838163\n",
      "  Epoch 1/20, Loss: 342.838163\n",
      "  Epoch 2/20, Loss: 181.528749\n",
      "  Epoch 2/20, Loss: 181.528749\n",
      "  Epoch 4/20, Loss: 93.144329\n",
      "  Epoch 4/20, Loss: 93.144329\n",
      "  Epoch 6/20, Loss: 83.927897\n",
      "  Epoch 6/20, Loss: 83.927897\n",
      "  Epoch 8/20, Loss: 83.774831\n",
      "  Epoch 8/20, Loss: 83.774831\n",
      "  Epoch 10/20, Loss: 83.434653\n",
      "  Epoch 10/20, Loss: 83.434653\n",
      "  Epoch 12/20, Loss: 83.527328\n",
      "  Epoch 12/20, Loss: 83.527328\n",
      "  Epoch 14/20, Loss: 83.774070\n",
      "  Epoch 14/20, Loss: 83.774070\n",
      "  Epoch 16/20, Loss: 83.539117\n",
      "  Epoch 16/20, Loss: 83.539117\n",
      "  Epoch 18/20, Loss: 83.648598\n",
      "  Epoch 18/20, Loss: 83.648598\n",
      "  Epoch 20/20, Loss: 83.910318\n",
      "股票 601066 训练完成，最佳损失: 83.021101\n",
      "数据点数量: 1648, 模型保存至: ./../../model\\model_601066.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601088 (91/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 83.910318\n",
      "股票 601066 训练完成，最佳损失: 83.021101\n",
      "数据点数量: 1648, 模型保存至: ./../../model\\model_601066.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601088 (91/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 157.056047\n",
      "  Epoch 1/20, Loss: 157.056047\n",
      "  Epoch 2/20, Loss: 219.163171\n",
      "  Epoch 2/20, Loss: 219.163171\n",
      "  Epoch 4/20, Loss: 136.406912\n",
      "  Epoch 4/20, Loss: 136.406912\n",
      "  Epoch 6/20, Loss: 135.066276\n",
      "  Epoch 6/20, Loss: 135.066276\n",
      "  Epoch 8/20, Loss: 179.515503\n",
      "  Epoch 8/20, Loss: 179.515503\n",
      "  Epoch 10/20, Loss: 152.982663\n",
      "  Epoch 10/20, Loss: 152.982663\n",
      "  Epoch 12/20, Loss: 127.203688\n",
      "  Epoch 12/20, Loss: 127.203688\n",
      "  Epoch 14/20, Loss: 109.976582\n",
      "  Epoch 14/20, Loss: 109.976582\n",
      "  Epoch 16/20, Loss: 102.148173\n",
      "  Epoch 16/20, Loss: 102.148173\n",
      "  Epoch 18/20, Loss: 77.626108\n",
      "  Epoch 18/20, Loss: 77.626108\n",
      "  Epoch 20/20, Loss: 64.871245\n",
      "股票 601088 训练完成，最佳损失: 64.871245\n",
      "数据点数量: 2358, 模型保存至: ./../../model\\model_601088.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601100 (92/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 64.871245\n",
      "股票 601088 训练完成，最佳损失: 64.871245\n",
      "数据点数量: 2358, 模型保存至: ./../../model\\model_601088.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601100 (92/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1699.082043\n",
      "  Epoch 1/20, Loss: 1699.082043\n",
      "  Epoch 2/20, Loss: 1412.195455\n",
      "  Epoch 2/20, Loss: 1412.195455\n",
      "  Epoch 4/20, Loss: 1138.273874\n",
      "  Epoch 4/20, Loss: 1138.273874\n",
      "  Epoch 6/20, Loss: 1632.237472\n",
      "  Epoch 6/20, Loss: 1632.237472\n",
      "  Epoch 8/20, Loss: 1554.420865\n",
      "  Epoch 8/20, Loss: 1554.420865\n",
      "  Epoch 10/20, Loss: 1565.520110\n",
      "  Epoch 10/20, Loss: 1565.520110\n",
      "  Epoch 12/20, Loss: 1481.704815\n",
      "  Epoch 12/20, Loss: 1481.704815\n",
      "  Epoch 14/20, Loss: 1421.391235\n",
      "  Epoch 14/20, Loss: 1421.391235\n",
      "  Epoch 16/20, Loss: 1322.504109\n",
      "  Epoch 16/20, Loss: 1322.504109\n",
      "  Epoch 18/20, Loss: 1246.487845\n",
      "  Epoch 18/20, Loss: 1246.487845\n",
      "  Epoch 20/20, Loss: 1515.605388\n",
      "股票 601100 训练完成，最佳损失: 1138.273874\n",
      "数据点数量: 2383, 模型保存至: ./../../model\\model_601100.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601111 (93/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1515.605388\n",
      "股票 601100 训练完成，最佳损失: 1138.273874\n",
      "数据点数量: 2383, 模型保存至: ./../../model\\model_601100.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601111 (93/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 10.292713\n",
      "  Epoch 1/20, Loss: 10.292713\n",
      "  Epoch 2/20, Loss: 2.807022\n",
      "  Epoch 2/20, Loss: 2.807022\n",
      "  Epoch 4/20, Loss: 2.741436\n",
      "  Epoch 4/20, Loss: 2.741436\n",
      "  Epoch 6/20, Loss: 2.716438\n",
      "  Epoch 6/20, Loss: 2.716438\n",
      "  Epoch 8/20, Loss: 2.742601\n",
      "  Epoch 8/20, Loss: 2.742601\n",
      "  Epoch 10/20, Loss: 2.726559\n",
      "  Epoch 10/20, Loss: 2.726559\n",
      "  Epoch 12/20, Loss: 2.678408\n",
      "  Epoch 12/20, Loss: 2.678408\n",
      "  Epoch 14/20, Loss: 2.749051\n",
      "  Epoch 14/20, Loss: 2.749051\n",
      "  Epoch 16/20, Loss: 2.732409\n",
      "  Epoch 16/20, Loss: 2.732409\n",
      "  Epoch 18/20, Loss: 2.677713\n",
      "  Epoch 18/20, Loss: 2.677713\n",
      "  Epoch 20/20, Loss: 2.729460\n",
      "股票 601111 训练完成，最佳损失: 2.677713\n",
      "数据点数量: 2400, 模型保存至: ./../../model\\model_601111.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601117 (94/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 2.729460\n",
      "股票 601111 训练完成，最佳损失: 2.677713\n",
      "数据点数量: 2400, 模型保存至: ./../../model\\model_601111.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601117 (94/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 8.490608\n",
      "  Epoch 1/20, Loss: 8.490608\n",
      "  Epoch 2/20, Loss: 4.818060\n",
      "  Epoch 2/20, Loss: 4.818060\n",
      "  Epoch 4/20, Loss: 4.435298\n",
      "  Epoch 4/20, Loss: 4.435298\n",
      "  Epoch 6/20, Loss: 4.421975\n",
      "  Epoch 6/20, Loss: 4.421975\n",
      "  Epoch 8/20, Loss: 4.426452\n",
      "  Epoch 8/20, Loss: 4.426452\n",
      "  Epoch 10/20, Loss: 4.456271\n",
      "  Epoch 10/20, Loss: 4.456271\n",
      "  Epoch 12/20, Loss: 4.443271\n",
      "  Epoch 12/20, Loss: 4.443271\n",
      "  Epoch 14/20, Loss: 4.431555\n",
      "  Epoch 14/20, Loss: 4.431555\n",
      "  Epoch 16/20, Loss: 4.412828\n",
      "  Epoch 16/20, Loss: 4.412828\n",
      "  Epoch 18/20, Loss: 4.444545\n",
      "  Epoch 18/20, Loss: 4.444545\n",
      "  Epoch 20/20, Loss: 4.405061\n",
      "股票 601117 训练完成，最佳损失: 4.404333\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_601117.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601127 (95/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 4.405061\n",
      "股票 601117 训练完成，最佳损失: 4.404333\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_601117.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601127 (95/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2254.967735\n",
      "  Epoch 1/20, Loss: 2254.967735\n",
      "  Epoch 2/20, Loss: 1857.518808\n",
      "  Epoch 2/20, Loss: 1857.518808\n",
      "  Epoch 4/20, Loss: 1520.623505\n",
      "  Epoch 4/20, Loss: 1520.623505\n",
      "  Epoch 6/20, Loss: 1359.099758\n",
      "  Epoch 6/20, Loss: 1359.099758\n",
      "  Epoch 8/20, Loss: 1307.727961\n",
      "  Epoch 8/20, Loss: 1307.727961\n",
      "  Epoch 10/20, Loss: 1296.628812\n",
      "  Epoch 10/20, Loss: 1296.628812\n",
      "  Epoch 12/20, Loss: 1292.524935\n",
      "  Epoch 12/20, Loss: 1292.524935\n",
      "  Epoch 14/20, Loss: 1279.605416\n",
      "  Epoch 14/20, Loss: 1279.605416\n",
      "  Epoch 16/20, Loss: 1281.927174\n",
      "  Epoch 16/20, Loss: 1281.927174\n",
      "  Epoch 18/20, Loss: 1284.196201\n",
      "  Epoch 18/20, Loss: 1284.196201\n",
      "  Epoch 20/20, Loss: 1287.644933\n",
      "股票 601127 训练完成，最佳损失: 1276.999997\n",
      "数据点数量: 2114, 模型保存至: ./../../model\\model_601127.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601136 (96/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 254.721788\n",
      "  Epoch 20/20, Loss: 1287.644933\n",
      "股票 601127 训练完成，最佳损失: 1276.999997\n",
      "数据点数量: 2114, 模型保存至: ./../../model\\model_601127.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601136 (96/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 254.721788\n",
      "  Epoch 2/20, Loss: 98.053086\n",
      "  Epoch 2/20, Loss: 98.053086\n",
      "  Epoch 4/20, Loss: 35.921483\n",
      "  Epoch 4/20, Loss: 35.921483\n",
      "  Epoch 6/20, Loss: 14.279963\n",
      "  Epoch 6/20, Loss: 14.279963\n",
      "  Epoch 8/20, Loss: 10.970934\n",
      "  Epoch 8/20, Loss: 10.970934\n",
      "  Epoch 10/20, Loss: 10.981642\n",
      "  Epoch 10/20, Loss: 10.981642\n",
      "  Epoch 12/20, Loss: 11.222471\n",
      "  Epoch 12/20, Loss: 11.222471\n",
      "  Epoch 14/20, Loss: 11.323638\n",
      "  Epoch 14/20, Loss: 11.323638\n",
      "  Epoch 16/20, Loss: 11.310923\n",
      "  Epoch 16/20, Loss: 11.310923\n",
      "  Epoch 18/20, Loss: 11.380135\n",
      "  Epoch 18/20, Loss: 11.380135\n",
      "  Epoch 20/20, Loss: 11.111848\n",
      "股票 601136 训练完成，最佳损失: 10.970934\n",
      "数据点数量: 551, 模型保存至: ./../../model\\model_601136.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601138 (97/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 11.111848\n",
      "股票 601136 训练完成，最佳损失: 10.970934\n",
      "数据点数量: 551, 模型保存至: ./../../model\\model_601136.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601138 (97/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 64.746234\n",
      "  Epoch 1/20, Loss: 64.746234\n",
      "  Epoch 2/20, Loss: 26.305823\n",
      "  Epoch 2/20, Loss: 26.305823\n",
      "  Epoch 4/20, Loss: 27.922948\n",
      "  Epoch 4/20, Loss: 27.922948\n",
      "  Epoch 6/20, Loss: 28.094884\n",
      "  Epoch 6/20, Loss: 28.094884\n",
      "  Epoch 8/20, Loss: 28.032753\n",
      "  Epoch 8/20, Loss: 28.032753\n",
      "  Epoch 10/20, Loss: 28.126192\n",
      "  Epoch 10/20, Loss: 28.126192\n",
      "  Epoch 12/20, Loss: 28.048304\n",
      "  Epoch 12/20, Loss: 28.048304\n",
      "  Epoch 14/20, Loss: 28.118271\n",
      "  Epoch 14/20, Loss: 28.118271\n",
      "  Epoch 16/20, Loss: 28.067018\n",
      "  Epoch 16/20, Loss: 28.067018\n",
      "  Epoch 18/20, Loss: 27.979119\n",
      "  Epoch 18/20, Loss: 27.979119\n",
      "  Epoch 20/20, Loss: 27.891183\n",
      "股票 601138 训练完成，最佳损失: 26.305823\n",
      "数据点数量: 1655, 模型保存至: ./../../model\\model_601138.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601166 (98/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 27.891183\n",
      "股票 601138 训练完成，最佳损失: 26.305823\n",
      "数据点数量: 1655, 模型保存至: ./../../model\\model_601138.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601166 (98/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 16.251966\n",
      "  Epoch 1/20, Loss: 16.251966\n",
      "  Epoch 2/20, Loss: 20.167463\n",
      "  Epoch 2/20, Loss: 20.167463\n",
      "  Epoch 4/20, Loss: 15.969177\n",
      "  Epoch 4/20, Loss: 15.969177\n",
      "  Epoch 6/20, Loss: 15.935561\n",
      "  Epoch 6/20, Loss: 15.935561\n",
      "  Epoch 8/20, Loss: 15.905830\n",
      "  Epoch 8/20, Loss: 15.905830\n",
      "  Epoch 10/20, Loss: 15.875048\n",
      "  Epoch 10/20, Loss: 15.875048\n",
      "  Epoch 12/20, Loss: 15.783810\n",
      "  Epoch 12/20, Loss: 15.783810\n",
      "  Epoch 14/20, Loss: 15.960486\n",
      "  Epoch 14/20, Loss: 15.960486\n",
      "  Epoch 16/20, Loss: 15.904709\n",
      "  Epoch 16/20, Loss: 15.904709\n",
      "  Epoch 18/20, Loss: 15.640361\n",
      "  Epoch 18/20, Loss: 15.640361\n",
      "  Epoch 20/20, Loss: 15.658798\n",
      "股票 601166 训练完成，最佳损失: 15.640361\n",
      "数据点数量: 2417, 模型保存至: ./../../model\\model_601166.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601169 (99/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 15.658798\n",
      "股票 601166 训练完成，最佳损失: 15.640361\n",
      "数据点数量: 2417, 模型保存至: ./../../model\\model_601166.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601169 (99/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2.631313\n",
      "  Epoch 1/20, Loss: 2.631313\n",
      "  Epoch 2/20, Loss: 0.811034\n",
      "  Epoch 2/20, Loss: 0.811034\n",
      "  Epoch 4/20, Loss: 0.171853\n",
      "  Epoch 4/20, Loss: 0.171853\n",
      "  Epoch 6/20, Loss: 0.131662\n",
      "  Epoch 6/20, Loss: 0.131662\n",
      "  Epoch 8/20, Loss: 0.127554\n",
      "  Epoch 8/20, Loss: 0.127554\n",
      "  Epoch 10/20, Loss: 0.080177\n",
      "  Epoch 10/20, Loss: 0.080177\n",
      "  Epoch 12/20, Loss: 0.121808\n",
      "  Epoch 12/20, Loss: 0.121808\n",
      "  Epoch 14/20, Loss: 0.135044\n",
      "  Epoch 14/20, Loss: 0.135044\n",
      "  Epoch 16/20, Loss: 0.295192\n",
      "  Epoch 16/20, Loss: 0.295192\n",
      "  Epoch 18/20, Loss: 0.297465\n",
      "  Epoch 18/20, Loss: 0.297465\n",
      "  Epoch 20/20, Loss: 0.189012\n",
      "股票 601169 训练完成，最佳损失: 0.080177\n",
      "数据点数量: 2383, 模型保存至: ./../../model\\model_601169.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601186 (100/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.189012\n",
      "股票 601169 训练完成，最佳损失: 0.080177\n",
      "数据点数量: 2383, 模型保存至: ./../../model\\model_601169.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601186 (100/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 21.649495\n",
      "  Epoch 1/20, Loss: 21.649495\n",
      "  Epoch 2/20, Loss: 6.610950\n",
      "  Epoch 2/20, Loss: 6.610950\n",
      "  Epoch 4/20, Loss: 6.116166\n",
      "  Epoch 4/20, Loss: 6.116166\n",
      "  Epoch 6/20, Loss: 6.136315\n",
      "  Epoch 6/20, Loss: 6.136315\n",
      "  Epoch 8/20, Loss: 5.043429\n",
      "  Epoch 8/20, Loss: 5.043429\n",
      "  Epoch 10/20, Loss: 3.607550\n",
      "  Epoch 10/20, Loss: 3.607550\n",
      "  Epoch 12/20, Loss: 3.347059\n",
      "  Epoch 12/20, Loss: 3.347059\n",
      "  Epoch 14/20, Loss: 2.723503\n",
      "  Epoch 14/20, Loss: 2.723503\n",
      "  Epoch 16/20, Loss: 2.006756\n",
      "  Epoch 16/20, Loss: 2.006756\n",
      "  Epoch 18/20, Loss: 1.883668\n",
      "  Epoch 18/20, Loss: 1.883668\n",
      "  Epoch 20/20, Loss: 1.478707\n",
      "股票 601186 训练完成，最佳损失: 1.478707\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601186.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601211 (101/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.478707\n",
      "股票 601186 训练完成，最佳损失: 1.478707\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601186.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601211 (101/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 50.344150\n",
      "  Epoch 1/20, Loss: 50.344150\n",
      "  Epoch 2/20, Loss: 5.035690\n",
      "  Epoch 2/20, Loss: 5.035690\n",
      "  Epoch 4/20, Loss: 4.781055\n",
      "  Epoch 4/20, Loss: 4.781055\n",
      "  Epoch 6/20, Loss: 4.695026\n",
      "  Epoch 6/20, Loss: 4.695026\n",
      "  Epoch 8/20, Loss: 4.842404\n",
      "  Epoch 8/20, Loss: 4.842404\n",
      "  Epoch 10/20, Loss: 4.898563\n",
      "  Epoch 10/20, Loss: 4.898563\n",
      "  Epoch 12/20, Loss: 4.885944\n",
      "  Epoch 12/20, Loss: 4.885944\n",
      "  Epoch 14/20, Loss: 4.879281\n",
      "  Epoch 14/20, Loss: 4.879281\n",
      "  Epoch 16/20, Loss: 4.893618\n",
      "  Epoch 16/20, Loss: 4.893618\n",
      "  Epoch 18/20, Loss: 4.916343\n",
      "  Epoch 18/20, Loss: 4.916343\n",
      "  Epoch 20/20, Loss: 4.805928\n",
      "股票 601211 训练完成，最佳损失: 4.670585\n",
      "数据点数量: 2356, 模型保存至: ./../../model\\model_601211.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601225 (102/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 4.805928\n",
      "股票 601211 训练完成，最佳损失: 4.670585\n",
      "数据点数量: 2356, 模型保存至: ./../../model\\model_601211.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601225 (102/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 40.534657\n",
      "  Epoch 1/20, Loss: 40.534657\n",
      "  Epoch 2/20, Loss: 103.040932\n",
      "  Epoch 2/20, Loss: 103.040932\n",
      "  Epoch 4/20, Loss: 29.763110\n",
      "  Epoch 4/20, Loss: 29.763110\n",
      "  Epoch 6/20, Loss: 16.840689\n",
      "  Epoch 6/20, Loss: 16.840689\n",
      "  Epoch 8/20, Loss: 11.458292\n",
      "  Epoch 8/20, Loss: 11.458292\n",
      "  Epoch 10/20, Loss: 6.937843\n",
      "  Epoch 10/20, Loss: 6.937843\n",
      "  Epoch 12/20, Loss: 6.983234\n",
      "  Epoch 12/20, Loss: 6.983234\n",
      "  Epoch 14/20, Loss: 8.028805\n",
      "  Epoch 14/20, Loss: 8.028805\n",
      "  Epoch 16/20, Loss: 9.522007\n",
      "  Epoch 16/20, Loss: 9.522007\n",
      "  Epoch 18/20, Loss: 6.455727\n",
      "  Epoch 18/20, Loss: 6.455727\n",
      "  Epoch 20/20, Loss: 5.883503\n",
      "股票 601225 训练完成，最佳损失: 5.434147\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601225.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601229 (103/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 5.883503\n",
      "股票 601225 训练完成，最佳损失: 5.434147\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601225.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601229 (103/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 7.374783\n",
      "  Epoch 1/20, Loss: 7.374783\n",
      "  Epoch 2/20, Loss: 1.814196\n",
      "  Epoch 2/20, Loss: 1.814196\n",
      "  Epoch 4/20, Loss: 1.686800\n",
      "  Epoch 4/20, Loss: 1.686800\n",
      "  Epoch 6/20, Loss: 1.173414\n",
      "  Epoch 6/20, Loss: 1.173414\n",
      "  Epoch 8/20, Loss: 0.730432\n",
      "  Epoch 8/20, Loss: 0.730432\n",
      "  Epoch 10/20, Loss: 0.602201\n",
      "  Epoch 10/20, Loss: 0.602201\n",
      "  Epoch 12/20, Loss: 0.363408\n",
      "  Epoch 12/20, Loss: 0.363408\n",
      "  Epoch 14/20, Loss: 0.282178\n",
      "  Epoch 14/20, Loss: 0.282178\n",
      "  Epoch 16/20, Loss: 0.246513\n",
      "  Epoch 16/20, Loss: 0.246513\n",
      "  Epoch 18/20, Loss: 0.449595\n",
      "  Epoch 18/20, Loss: 0.449595\n",
      "  Epoch 20/20, Loss: 0.179446\n",
      "股票 601229 训练完成，最佳损失: 0.179446\n",
      "数据点数量: 2036, 模型保存至: ./../../model\\model_601229.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601236 (104/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.179446\n",
      "股票 601229 训练完成，最佳损失: 0.179446\n",
      "数据点数量: 2036, 模型保存至: ./../../model\\model_601229.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601236 (104/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 54.914341\n",
      "  Epoch 1/20, Loss: 54.914341\n",
      "  Epoch 2/20, Loss: 15.384742\n",
      "  Epoch 2/20, Loss: 15.384742\n",
      "  Epoch 4/20, Loss: 13.134647\n",
      "  Epoch 4/20, Loss: 13.134647\n",
      "  Epoch 6/20, Loss: 6.406013\n",
      "  Epoch 6/20, Loss: 6.406013\n",
      "  Epoch 8/20, Loss: 3.544292\n",
      "  Epoch 8/20, Loss: 3.544292\n",
      "  Epoch 10/20, Loss: 3.274593\n",
      "  Epoch 10/20, Loss: 3.274593\n",
      "  Epoch 12/20, Loss: 2.832695\n",
      "  Epoch 12/20, Loss: 2.832695\n",
      "  Epoch 14/20, Loss: 1.673145\n",
      "  Epoch 14/20, Loss: 1.673145\n",
      "  Epoch 16/20, Loss: 1.443178\n",
      "  Epoch 16/20, Loss: 1.443178\n",
      "  Epoch 18/20, Loss: 1.086778\n",
      "  Epoch 18/20, Loss: 1.086778\n",
      "  Epoch 20/20, Loss: 1.154989\n",
      "股票 601236 训练完成，最佳损失: 1.086778\n",
      "数据点数量: 1388, 模型保存至: ./../../model\\model_601236.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601238 (105/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.154989\n",
      "股票 601236 训练完成，最佳损失: 1.086778\n",
      "数据点数量: 1388, 模型保存至: ./../../model\\model_601236.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601238 (105/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 31.441198\n",
      "  Epoch 1/20, Loss: 31.441198\n",
      "  Epoch 2/20, Loss: 9.241669\n",
      "  Epoch 2/20, Loss: 9.241669\n",
      "  Epoch 4/20, Loss: 9.601823\n",
      "  Epoch 4/20, Loss: 9.601823\n",
      "  Epoch 6/20, Loss: 3.840720\n",
      "  Epoch 6/20, Loss: 3.840720\n",
      "  Epoch 8/20, Loss: 1.103059\n",
      "  Epoch 8/20, Loss: 1.103059\n",
      "  Epoch 10/20, Loss: 0.801042\n",
      "  Epoch 10/20, Loss: 0.801042\n",
      "  Epoch 12/20, Loss: 0.583440\n",
      "  Epoch 12/20, Loss: 0.583440\n",
      "  Epoch 14/20, Loss: 1.042930\n",
      "  Epoch 14/20, Loss: 1.042930\n",
      "  Epoch 16/20, Loss: 1.542846\n",
      "  Epoch 16/20, Loss: 1.542846\n",
      "  Epoch 18/20, Loss: 0.663357\n",
      "  Epoch 18/20, Loss: 0.663357\n",
      "  Epoch 20/20, Loss: 1.118176\n",
      "股票 601238 训练完成，最佳损失: 0.571431\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_601238.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601288 (106/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.118176\n",
      "股票 601238 训练完成，最佳损失: 0.571431\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_601238.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601288 (106/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 0.335373\n",
      "  Epoch 1/20, Loss: 0.335373\n",
      "  Epoch 2/20, Loss: 1.694652\n",
      "  Epoch 2/20, Loss: 1.694652\n",
      "  Epoch 4/20, Loss: 0.215582\n",
      "  Epoch 4/20, Loss: 0.215582\n",
      "  Epoch 6/20, Loss: 0.127933\n",
      "  Epoch 6/20, Loss: 0.127933\n",
      "  Epoch 8/20, Loss: 0.065665\n",
      "  Epoch 8/20, Loss: 0.065665\n",
      "  Epoch 10/20, Loss: 0.046871\n",
      "  Epoch 10/20, Loss: 0.046871\n",
      "  Epoch 12/20, Loss: 0.043138\n",
      "  Epoch 12/20, Loss: 0.043138\n",
      "  Epoch 14/20, Loss: 0.043544\n",
      "  Epoch 14/20, Loss: 0.043544\n",
      "  Epoch 16/20, Loss: 0.033697\n",
      "  Epoch 16/20, Loss: 0.033697\n",
      "  Epoch 18/20, Loss: 0.046843\n",
      "  Epoch 18/20, Loss: 0.046843\n",
      "  Epoch 20/20, Loss: 0.045540\n",
      "股票 601288 训练完成，最佳损失: 0.033697\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601288.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601318 (107/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.045540\n",
      "股票 601288 训练完成，最佳损失: 0.033697\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601288.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601318 (107/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1442.319489\n",
      "  Epoch 1/20, Loss: 1442.319489\n",
      "  Epoch 2/20, Loss: 953.549656\n",
      "  Epoch 2/20, Loss: 953.549656\n",
      "  Epoch 4/20, Loss: 510.025370\n",
      "  Epoch 4/20, Loss: 510.025370\n",
      "  Epoch 6/20, Loss: 376.838792\n",
      "  Epoch 6/20, Loss: 376.838792\n",
      "  Epoch 8/20, Loss: 345.367848\n",
      "  Epoch 8/20, Loss: 345.367848\n",
      "  Epoch 10/20, Loss: 342.359278\n",
      "  Epoch 10/20, Loss: 342.359278\n",
      "  Epoch 12/20, Loss: 343.325708\n",
      "  Epoch 12/20, Loss: 343.325708\n",
      "  Epoch 14/20, Loss: 343.326869\n",
      "  Epoch 14/20, Loss: 343.326869\n",
      "  Epoch 16/20, Loss: 344.554160\n",
      "  Epoch 16/20, Loss: 344.554160\n",
      "  Epoch 18/20, Loss: 345.808714\n",
      "  Epoch 18/20, Loss: 345.808714\n",
      "  Epoch 20/20, Loss: 343.619978\n",
      "股票 601318 训练完成，最佳损失: 342.359278\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601318.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601319 (108/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 343.619978\n",
      "股票 601318 训练完成，最佳损失: 342.359278\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601318.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601319 (108/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 10.300654\n",
      "  Epoch 1/20, Loss: 10.300654\n",
      "  Epoch 2/20, Loss: 1.218323\n",
      "  Epoch 2/20, Loss: 1.218323\n",
      "  Epoch 4/20, Loss: 0.763740\n",
      "  Epoch 4/20, Loss: 0.763740\n",
      "  Epoch 6/20, Loss: 0.296771\n",
      "  Epoch 6/20, Loss: 0.296771\n",
      "  Epoch 8/20, Loss: 0.233872\n",
      "  Epoch 8/20, Loss: 0.233872\n",
      "  Epoch 10/20, Loss: 0.232056\n",
      "  Epoch 10/20, Loss: 0.232056\n",
      "  Epoch 12/20, Loss: 0.153088\n",
      "  Epoch 12/20, Loss: 0.153088\n",
      "  Epoch 14/20, Loss: 0.154593\n",
      "  Epoch 14/20, Loss: 0.154593\n",
      "  Epoch 16/20, Loss: 0.126355\n",
      "  Epoch 16/20, Loss: 0.126355\n",
      "  Epoch 18/20, Loss: 0.185263\n",
      "  Epoch 18/20, Loss: 0.185263\n",
      "  Epoch 20/20, Loss: 0.221478\n",
      "股票 601319 训练完成，最佳损失: 0.126355\n",
      "数据点数量: 1547, 模型保存至: ./../../model\\model_601319.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601328 (109/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.221478\n",
      "股票 601319 训练完成，最佳损失: 0.126355\n",
      "数据点数量: 1547, 模型保存至: ./../../model\\model_601319.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601328 (109/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.349207\n",
      "  Epoch 1/20, Loss: 1.349207\n",
      "  Epoch 2/20, Loss: 2.435006\n",
      "  Epoch 2/20, Loss: 2.435006\n",
      "  Epoch 4/20, Loss: 0.249799\n",
      "  Epoch 4/20, Loss: 0.249799\n",
      "  Epoch 6/20, Loss: 0.412090\n",
      "  Epoch 6/20, Loss: 0.412090\n",
      "  Epoch 8/20, Loss: 0.153095\n",
      "  Epoch 8/20, Loss: 0.153095\n",
      "  Epoch 10/20, Loss: 0.085175\n",
      "  Epoch 10/20, Loss: 0.085175\n",
      "  Epoch 12/20, Loss: 0.118537\n",
      "  Epoch 12/20, Loss: 0.118537\n",
      "  Epoch 14/20, Loss: 0.097460\n",
      "  Epoch 14/20, Loss: 0.097460\n",
      "  Epoch 16/20, Loss: 0.186882\n",
      "  Epoch 16/20, Loss: 0.186882\n",
      "  Epoch 18/20, Loss: 0.222743\n",
      "  Epoch 18/20, Loss: 0.222743\n",
      "  Epoch 20/20, Loss: 0.324578\n",
      "股票 601328 训练完成，最佳损失: 0.085175\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601328.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601336 (110/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.324578\n",
      "股票 601328 训练完成，最佳损失: 0.085175\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601328.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601336 (110/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 942.905641\n",
      "  Epoch 1/20, Loss: 942.905641\n",
      "  Epoch 2/20, Loss: 489.676141\n",
      "  Epoch 2/20, Loss: 489.676141\n",
      "  Epoch 4/20, Loss: 154.710834\n",
      "  Epoch 4/20, Loss: 154.710834\n",
      "  Epoch 6/20, Loss: 92.118556\n",
      "  Epoch 6/20, Loss: 92.118556\n",
      "  Epoch 8/20, Loss: 83.063182\n",
      "  Epoch 8/20, Loss: 83.063182\n",
      "  Epoch 10/20, Loss: 83.429379\n",
      "  Epoch 10/20, Loss: 83.429379\n",
      "  Epoch 12/20, Loss: 82.774677\n",
      "  Epoch 12/20, Loss: 82.774677\n",
      "  Epoch 14/20, Loss: 83.418337\n",
      "  Epoch 14/20, Loss: 83.418337\n",
      "  Epoch 16/20, Loss: 83.362011\n",
      "  Epoch 16/20, Loss: 83.362011\n",
      "  Epoch 18/20, Loss: 84.173757\n",
      "  Epoch 18/20, Loss: 84.173757\n",
      "  Epoch 20/20, Loss: 82.978656\n",
      "股票 601336 训练完成，最佳损失: 82.774677\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601336.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601360 (111/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 82.978656\n",
      "股票 601336 训练完成，最佳损失: 82.774677\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601336.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601360 (111/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 134.664585\n",
      "  Epoch 1/20, Loss: 134.664585\n",
      "  Epoch 2/20, Loss: 87.710949\n",
      "  Epoch 2/20, Loss: 87.710949\n",
      "  Epoch 4/20, Loss: 82.585758\n",
      "  Epoch 4/20, Loss: 82.585758\n",
      "  Epoch 6/20, Loss: 82.791123\n",
      "  Epoch 6/20, Loss: 82.791123\n",
      "  Epoch 8/20, Loss: 65.609516\n",
      "  Epoch 8/20, Loss: 65.609516\n",
      "  Epoch 10/20, Loss: 60.603643\n",
      "  Epoch 10/20, Loss: 60.603643\n",
      "  Epoch 12/20, Loss: 49.684043\n",
      "  Epoch 12/20, Loss: 49.684043\n",
      "  Epoch 14/20, Loss: 44.208911\n",
      "  Epoch 14/20, Loss: 44.208911\n",
      "  Epoch 16/20, Loss: 35.941110\n",
      "  Epoch 16/20, Loss: 35.941110\n",
      "  Epoch 18/20, Loss: 29.489668\n",
      "  Epoch 18/20, Loss: 29.489668\n",
      "  Epoch 20/20, Loss: 25.368630\n",
      "股票 601360 训练完成，最佳损失: 25.368630\n",
      "数据点数量: 2298, 模型保存至: ./../../model\\model_601360.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601377 (112/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 25.368630\n",
      "股票 601360 训练完成，最佳损失: 25.368630\n",
      "数据点数量: 2298, 模型保存至: ./../../model\\model_601360.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601377 (112/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 8.615696\n",
      "  Epoch 1/20, Loss: 8.615696\n",
      "  Epoch 2/20, Loss: 1.284368\n",
      "  Epoch 2/20, Loss: 1.284368\n",
      "  Epoch 4/20, Loss: 0.838584\n",
      "  Epoch 4/20, Loss: 0.838584\n",
      "  Epoch 6/20, Loss: 0.513980\n",
      "  Epoch 6/20, Loss: 0.513980\n",
      "  Epoch 8/20, Loss: 0.338781\n",
      "  Epoch 8/20, Loss: 0.338781\n",
      "  Epoch 10/20, Loss: 0.406407\n",
      "  Epoch 10/20, Loss: 0.406407\n",
      "  Epoch 12/20, Loss: 0.327014\n",
      "  Epoch 12/20, Loss: 0.327014\n",
      "  Epoch 14/20, Loss: 0.267006\n",
      "  Epoch 14/20, Loss: 0.267006\n",
      "  Epoch 16/20, Loss: 0.244657\n",
      "  Epoch 16/20, Loss: 0.244657\n",
      "  Epoch 18/20, Loss: 0.223973\n",
      "  Epoch 18/20, Loss: 0.223973\n",
      "  Epoch 20/20, Loss: 0.511991\n",
      "股票 601377 训练完成，最佳损失: 0.208466\n",
      "数据点数量: 2404, 模型保存至: ./../../model\\model_601377.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601390 (113/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.511991\n",
      "股票 601377 训练完成，最佳损失: 0.208466\n",
      "数据点数量: 2404, 模型保存至: ./../../model\\model_601377.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601390 (113/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 15.631150\n",
      "  Epoch 1/20, Loss: 15.631150\n",
      "  Epoch 2/20, Loss: 6.214914\n",
      "  Epoch 2/20, Loss: 6.214914\n",
      "  Epoch 4/20, Loss: 5.597739\n",
      "  Epoch 4/20, Loss: 5.597739\n",
      "  Epoch 6/20, Loss: 5.551111\n",
      "  Epoch 6/20, Loss: 5.551111\n",
      "  Epoch 8/20, Loss: 4.196447\n",
      "  Epoch 8/20, Loss: 4.196447\n",
      "  Epoch 10/20, Loss: 2.921150\n",
      "  Epoch 10/20, Loss: 2.921150\n",
      "  Epoch 12/20, Loss: 3.026438\n",
      "  Epoch 12/20, Loss: 3.026438\n",
      "  Epoch 14/20, Loss: 3.034125\n",
      "  Epoch 14/20, Loss: 3.034125\n",
      "  Epoch 16/20, Loss: 2.735471\n",
      "  Epoch 16/20, Loss: 2.735471\n",
      "  Epoch 18/20, Loss: 2.831901\n",
      "  Epoch 18/20, Loss: 2.831901\n",
      "  Epoch 20/20, Loss: 2.481607\n",
      "股票 601390 训练完成，最佳损失: 2.481607\n",
      "数据点数量: 2343, 模型保存至: ./../../model\\model_601390.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601398 (114/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 2.481607\n",
      "股票 601390 训练完成，最佳损失: 2.481607\n",
      "数据点数量: 2343, 模型保存至: ./../../model\\model_601390.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601398 (114/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 0.796570\n",
      "  Epoch 1/20, Loss: 0.796570\n",
      "  Epoch 2/20, Loss: 2.083539\n",
      "  Epoch 2/20, Loss: 2.083539\n",
      "  Epoch 4/20, Loss: 0.523608\n",
      "  Epoch 4/20, Loss: 0.523608\n",
      "  Epoch 6/20, Loss: 0.604042\n",
      "  Epoch 6/20, Loss: 0.604042\n",
      "  Epoch 8/20, Loss: 0.595543\n",
      "  Epoch 8/20, Loss: 0.595543\n",
      "  Epoch 10/20, Loss: 0.276128\n",
      "  Epoch 10/20, Loss: 0.276128\n",
      "  Epoch 12/20, Loss: 0.189852\n",
      "  Epoch 12/20, Loss: 0.189852\n",
      "  Epoch 14/20, Loss: 0.211876\n",
      "  Epoch 14/20, Loss: 0.211876\n",
      "  Epoch 16/20, Loss: 0.179469\n",
      "  Epoch 16/20, Loss: 0.179469\n",
      "  Epoch 18/20, Loss: 0.144184\n",
      "  Epoch 18/20, Loss: 0.144184\n",
      "  Epoch 20/20, Loss: 0.411472\n",
      "股票 601398 训练完成，最佳损失: 0.138083\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601398.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601600 (115/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.411472\n",
      "股票 601398 训练完成，最佳损失: 0.138083\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601398.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601600 (115/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 5.125540\n",
      "  Epoch 1/20, Loss: 5.125540\n",
      "  Epoch 2/20, Loss: 4.483012\n",
      "  Epoch 2/20, Loss: 4.483012\n",
      "  Epoch 4/20, Loss: 0.647696\n",
      "  Epoch 4/20, Loss: 0.647696\n",
      "  Epoch 6/20, Loss: 0.398220\n",
      "  Epoch 6/20, Loss: 0.398220\n",
      "  Epoch 8/20, Loss: 0.238080\n",
      "  Epoch 8/20, Loss: 0.238080\n",
      "  Epoch 10/20, Loss: 0.234464\n",
      "  Epoch 10/20, Loss: 0.234464\n",
      "  Epoch 12/20, Loss: 0.200839\n",
      "  Epoch 12/20, Loss: 0.200839\n",
      "  Epoch 14/20, Loss: 0.186721\n",
      "  Epoch 14/20, Loss: 0.186721\n",
      "  Epoch 16/20, Loss: 0.127098\n",
      "  Epoch 16/20, Loss: 0.127098\n",
      "  Epoch 18/20, Loss: 0.153363\n",
      "  Epoch 18/20, Loss: 0.153363\n",
      "  Epoch 20/20, Loss: 0.163670\n",
      "股票 601600 训练完成，最佳损失: 0.127098\n",
      "数据点数量: 2313, 模型保存至: ./../../model\\model_601600.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601601 (116/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.163670\n",
      "股票 601600 训练完成，最佳损失: 0.127098\n",
      "数据点数量: 2313, 模型保存至: ./../../model\\model_601600.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601601 (116/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 249.142550\n",
      "  Epoch 1/20, Loss: 249.142550\n",
      "  Epoch 2/20, Loss: 69.048950\n",
      "  Epoch 2/20, Loss: 69.048950\n",
      "  Epoch 4/20, Loss: 31.917109\n",
      "  Epoch 4/20, Loss: 31.917109\n",
      "  Epoch 6/20, Loss: 32.702693\n",
      "  Epoch 6/20, Loss: 32.702693\n",
      "  Epoch 8/20, Loss: 32.695932\n",
      "  Epoch 8/20, Loss: 32.695932\n",
      "  Epoch 10/20, Loss: 33.125405\n",
      "  Epoch 10/20, Loss: 33.125405\n",
      "  Epoch 12/20, Loss: 32.793902\n",
      "  Epoch 12/20, Loss: 32.793902\n",
      "  Epoch 14/20, Loss: 33.035311\n",
      "  Epoch 14/20, Loss: 33.035311\n",
      "  Epoch 16/20, Loss: 33.008628\n",
      "  Epoch 16/20, Loss: 33.008628\n",
      "  Epoch 18/20, Loss: 32.952657\n",
      "  Epoch 18/20, Loss: 32.952657\n",
      "  Epoch 20/20, Loss: 33.290014\n",
      "股票 601601 训练完成，最佳损失: 31.917109\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601601.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601607 (117/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 33.290014\n",
      "股票 601601 训练完成，最佳损失: 31.917109\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601601.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601607 (117/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 76.411193\n",
      "  Epoch 1/20, Loss: 76.411193\n",
      "  Epoch 2/20, Loss: 7.223538\n",
      "  Epoch 2/20, Loss: 7.223538\n",
      "  Epoch 4/20, Loss: 6.842565\n",
      "  Epoch 4/20, Loss: 6.842565\n",
      "  Epoch 6/20, Loss: 6.881243\n",
      "  Epoch 6/20, Loss: 6.881243\n",
      "  Epoch 8/20, Loss: 7.103638\n",
      "  Epoch 8/20, Loss: 7.103638\n",
      "  Epoch 10/20, Loss: 6.953804\n",
      "  Epoch 10/20, Loss: 6.953804\n",
      "  Epoch 12/20, Loss: 6.963595\n",
      "  Epoch 12/20, Loss: 6.963595\n",
      "  Epoch 14/20, Loss: 6.930920\n",
      "  Epoch 14/20, Loss: 6.930920\n",
      "  Epoch 16/20, Loss: 7.004724\n",
      "  Epoch 16/20, Loss: 7.004724\n",
      "  Epoch 18/20, Loss: 6.985560\n",
      "  Epoch 18/20, Loss: 6.985560\n",
      "  Epoch 20/20, Loss: 7.027447\n",
      "股票 601607 训练完成，最佳损失: 6.715590\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601607.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601618 (118/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 7.027447\n",
      "股票 601607 训练完成，最佳损失: 6.715590\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601607.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601618 (118/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3.433885\n",
      "  Epoch 1/20, Loss: 3.433885\n",
      "  Epoch 2/20, Loss: 0.570187\n",
      "  Epoch 2/20, Loss: 0.570187\n",
      "  Epoch 4/20, Loss: 0.293490\n",
      "  Epoch 4/20, Loss: 0.293490\n",
      "  Epoch 6/20, Loss: 0.187580\n",
      "  Epoch 6/20, Loss: 0.187580\n",
      "  Epoch 8/20, Loss: 0.110135\n",
      "  Epoch 8/20, Loss: 0.110135\n",
      "  Epoch 10/20, Loss: 0.163476\n",
      "  Epoch 10/20, Loss: 0.163476\n",
      "  Epoch 12/20, Loss: 0.431343\n",
      "  Epoch 12/20, Loss: 0.431343\n",
      "  Epoch 14/20, Loss: 0.186421\n",
      "  Epoch 14/20, Loss: 0.186421\n",
      "  Epoch 16/20, Loss: 0.189606\n",
      "  Epoch 16/20, Loss: 0.189606\n",
      "  Epoch 18/20, Loss: 0.150250\n",
      "  Epoch 18/20, Loss: 0.150250\n",
      "  Epoch 20/20, Loss: 0.354859\n",
      "股票 601618 训练完成，最佳损失: 0.106081\n",
      "数据点数量: 2350, 模型保存至: ./../../model\\model_601618.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601628 (119/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.354859\n",
      "股票 601618 训练完成，最佳损失: 0.106081\n",
      "数据点数量: 2350, 模型保存至: ./../../model\\model_601618.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601628 (119/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 328.509592\n",
      "  Epoch 1/20, Loss: 328.509592\n",
      "  Epoch 2/20, Loss: 103.255744\n",
      "  Epoch 2/20, Loss: 103.255744\n",
      "  Epoch 4/20, Loss: 48.552843\n",
      "  Epoch 4/20, Loss: 48.552843\n",
      "  Epoch 6/20, Loss: 50.765084\n",
      "  Epoch 6/20, Loss: 50.765084\n",
      "  Epoch 8/20, Loss: 51.504145\n",
      "  Epoch 8/20, Loss: 51.504145\n",
      "  Epoch 10/20, Loss: 52.136363\n",
      "  Epoch 10/20, Loss: 52.136363\n",
      "  Epoch 12/20, Loss: 52.217011\n",
      "  Epoch 12/20, Loss: 52.217011\n",
      "  Epoch 14/20, Loss: 52.289101\n",
      "  Epoch 14/20, Loss: 52.289101\n",
      "  Epoch 16/20, Loss: 52.308064\n",
      "  Epoch 16/20, Loss: 52.308064\n",
      "  Epoch 18/20, Loss: 52.015835\n",
      "  Epoch 18/20, Loss: 52.015835\n",
      "  Epoch 20/20, Loss: 52.329497\n",
      "股票 601628 训练完成，最佳损失: 48.552843\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601628.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601633 (120/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 52.329497\n",
      "股票 601628 训练完成，最佳损失: 48.552843\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601628.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601633 (120/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 272.732460\n",
      "  Epoch 1/20, Loss: 272.732460\n",
      "  Epoch 2/20, Loss: 210.416076\n",
      "  Epoch 2/20, Loss: 210.416076\n",
      "  Epoch 4/20, Loss: 195.010576\n",
      "  Epoch 4/20, Loss: 195.010576\n",
      "  Epoch 6/20, Loss: 195.772548\n",
      "  Epoch 6/20, Loss: 195.772548\n",
      "  Epoch 8/20, Loss: 196.540019\n",
      "  Epoch 8/20, Loss: 196.540019\n",
      "  Epoch 10/20, Loss: 197.166277\n",
      "  Epoch 10/20, Loss: 197.166277\n",
      "  Epoch 12/20, Loss: 198.306868\n",
      "  Epoch 12/20, Loss: 198.306868\n",
      "  Epoch 14/20, Loss: 230.337052\n",
      "  Epoch 14/20, Loss: 230.337052\n",
      "  Epoch 16/20, Loss: 193.026365\n",
      "  Epoch 16/20, Loss: 193.026365\n",
      "  Epoch 18/20, Loss: 192.811238\n",
      "  Epoch 18/20, Loss: 192.811238\n",
      "  Epoch 20/20, Loss: 195.160345\n",
      "股票 601633 训练完成，最佳损失: 192.000350\n",
      "数据点数量: 2400, 模型保存至: ./../../model\\model_601633.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601658 (121/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 195.160345\n",
      "股票 601633 训练完成，最佳损失: 192.000350\n",
      "数据点数量: 2400, 模型保存至: ./../../model\\model_601633.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601658 (121/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3.081056\n",
      "  Epoch 1/20, Loss: 3.081056\n",
      "  Epoch 2/20, Loss: 0.836987\n",
      "  Epoch 2/20, Loss: 0.836987\n",
      "  Epoch 4/20, Loss: 0.108617\n",
      "  Epoch 4/20, Loss: 0.108617\n",
      "  Epoch 6/20, Loss: 0.056811\n",
      "  Epoch 6/20, Loss: 0.056811\n",
      "  Epoch 8/20, Loss: 0.053383\n",
      "  Epoch 8/20, Loss: 0.053383\n",
      "  Epoch 10/20, Loss: 0.055177\n",
      "  Epoch 10/20, Loss: 0.055177\n",
      "  Epoch 12/20, Loss: 0.056110\n",
      "  Epoch 12/20, Loss: 0.056110\n",
      "  Epoch 14/20, Loss: 0.050627\n",
      "  Epoch 14/20, Loss: 0.050627\n",
      "  Epoch 16/20, Loss: 0.052900\n",
      "  Epoch 16/20, Loss: 0.052900\n",
      "  Epoch 18/20, Loss: 0.040853\n",
      "  Epoch 18/20, Loss: 0.040853\n",
      "  Epoch 20/20, Loss: 0.049113\n",
      "股票 601658 训练完成，最佳损失: 0.040853\n",
      "数据点数量: 1288, 模型保存至: ./../../model\\model_601658.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601668 (122/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.049113\n",
      "股票 601658 训练完成，最佳损失: 0.040853\n",
      "数据点数量: 1288, 模型保存至: ./../../model\\model_601658.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601668 (122/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.481777\n",
      "  Epoch 1/20, Loss: 1.481777\n",
      "  Epoch 2/20, Loss: 1.627064\n",
      "  Epoch 2/20, Loss: 1.627064\n",
      "  Epoch 4/20, Loss: 0.199681\n",
      "  Epoch 4/20, Loss: 0.199681\n",
      "  Epoch 6/20, Loss: 0.163343\n",
      "  Epoch 6/20, Loss: 0.163343\n",
      "  Epoch 8/20, Loss: 0.097604\n",
      "  Epoch 8/20, Loss: 0.097604\n",
      "  Epoch 10/20, Loss: 0.083642\n",
      "  Epoch 10/20, Loss: 0.083642\n",
      "  Epoch 12/20, Loss: 0.146894\n",
      "  Epoch 12/20, Loss: 0.146894\n",
      "  Epoch 14/20, Loss: 0.155295\n",
      "  Epoch 14/20, Loss: 0.155295\n",
      "  Epoch 16/20, Loss: 0.141350\n",
      "  Epoch 16/20, Loss: 0.141350\n",
      "  Epoch 18/20, Loss: 0.106123\n",
      "  Epoch 18/20, Loss: 0.106123\n",
      "  Epoch 20/20, Loss: 0.127873\n",
      "股票 601668 训练完成，最佳损失: 0.083642\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601668.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601669 (123/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.127873\n",
      "股票 601668 训练完成，最佳损失: 0.083642\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601668.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601669 (123/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 11.455219\n",
      "  Epoch 1/20, Loss: 11.455219\n",
      "  Epoch 2/20, Loss: 4.181086\n",
      "  Epoch 2/20, Loss: 4.181086\n",
      "  Epoch 4/20, Loss: 3.959065\n",
      "  Epoch 4/20, Loss: 3.959065\n",
      "  Epoch 6/20, Loss: 2.557321\n",
      "  Epoch 6/20, Loss: 2.557321\n",
      "  Epoch 8/20, Loss: 1.523429\n",
      "  Epoch 8/20, Loss: 1.523429\n",
      "  Epoch 10/20, Loss: 1.369698\n",
      "  Epoch 10/20, Loss: 1.369698\n",
      "  Epoch 12/20, Loss: 1.316100\n",
      "  Epoch 12/20, Loss: 1.316100\n",
      "  Epoch 14/20, Loss: 1.288345\n",
      "  Epoch 14/20, Loss: 1.288345\n",
      "  Epoch 16/20, Loss: 1.246981\n",
      "  Epoch 16/20, Loss: 1.246981\n",
      "  Epoch 18/20, Loss: 1.132341\n",
      "  Epoch 18/20, Loss: 1.132341\n",
      "  Epoch 20/20, Loss: 1.124883\n",
      "股票 601669 训练完成，最佳损失: 1.117923\n",
      "数据点数量: 2409, 模型保存至: ./../../model\\model_601669.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601688 (124/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.124883\n",
      "股票 601669 训练完成，最佳损失: 1.117923\n",
      "数据点数量: 2409, 模型保存至: ./../../model\\model_601669.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601688 (124/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 55.436487\n",
      "  Epoch 1/20, Loss: 55.436487\n",
      "  Epoch 2/20, Loss: 8.459142\n",
      "  Epoch 2/20, Loss: 8.459142\n",
      "  Epoch 4/20, Loss: 8.251516\n",
      "  Epoch 4/20, Loss: 8.251516\n",
      "  Epoch 6/20, Loss: 8.324416\n",
      "  Epoch 6/20, Loss: 8.324416\n",
      "  Epoch 8/20, Loss: 8.303177\n",
      "  Epoch 8/20, Loss: 8.303177\n",
      "  Epoch 10/20, Loss: 8.373344\n",
      "  Epoch 10/20, Loss: 8.373344\n",
      "  Epoch 12/20, Loss: 8.354503\n",
      "  Epoch 12/20, Loss: 8.354503\n",
      "  Epoch 14/20, Loss: 8.402472\n",
      "  Epoch 14/20, Loss: 8.402472\n",
      "  Epoch 16/20, Loss: 8.494569\n",
      "  Epoch 16/20, Loss: 8.494569\n",
      "  Epoch 18/20, Loss: 8.433876\n",
      "  Epoch 18/20, Loss: 8.433876\n",
      "  Epoch 20/20, Loss: 8.387881\n",
      "股票 601688 训练完成，最佳损失: 8.157938\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601688.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601689 (125/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 8.387881\n",
      "股票 601688 训练完成，最佳损失: 8.157938\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601688.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601689 (125/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 452.308694\n",
      "  Epoch 1/20, Loss: 452.308694\n",
      "  Epoch 2/20, Loss: 335.724129\n",
      "  Epoch 2/20, Loss: 335.724129\n",
      "  Epoch 4/20, Loss: 300.822835\n",
      "  Epoch 4/20, Loss: 300.822835\n",
      "  Epoch 6/20, Loss: 304.924579\n",
      "  Epoch 6/20, Loss: 304.924579\n",
      "  Epoch 8/20, Loss: 304.246827\n",
      "  Epoch 8/20, Loss: 304.246827\n",
      "  Epoch 10/20, Loss: 304.548885\n",
      "  Epoch 10/20, Loss: 304.548885\n",
      "  Epoch 12/20, Loss: 309.073031\n",
      "  Epoch 12/20, Loss: 309.073031\n",
      "  Epoch 14/20, Loss: 303.485966\n",
      "  Epoch 14/20, Loss: 303.485966\n",
      "  Epoch 16/20, Loss: 306.857360\n",
      "  Epoch 16/20, Loss: 306.857360\n",
      "  Epoch 18/20, Loss: 304.101804\n",
      "  Epoch 18/20, Loss: 304.101804\n",
      "  Epoch 20/20, Loss: 301.452207\n",
      "股票 601689 训练完成，最佳损失: 300.345214\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_601689.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601698 (126/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 301.452207\n",
      "股票 601689 训练完成，最佳损失: 300.345214\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_601689.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601698 (126/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 86.012313\n",
      "  Epoch 1/20, Loss: 86.012313\n",
      "  Epoch 2/20, Loss: 15.730617\n",
      "  Epoch 2/20, Loss: 15.730617\n",
      "  Epoch 4/20, Loss: 14.007133\n",
      "  Epoch 4/20, Loss: 14.007133\n",
      "  Epoch 6/20, Loss: 13.828339\n",
      "  Epoch 6/20, Loss: 13.828339\n",
      "  Epoch 8/20, Loss: 14.019696\n",
      "  Epoch 8/20, Loss: 14.019696\n",
      "  Epoch 10/20, Loss: 14.004911\n",
      "  Epoch 10/20, Loss: 14.004911\n",
      "  Epoch 12/20, Loss: 13.970237\n",
      "  Epoch 12/20, Loss: 13.970237\n",
      "  Epoch 14/20, Loss: 13.903006\n",
      "  Epoch 14/20, Loss: 13.903006\n",
      "  Epoch 16/20, Loss: 13.951397\n",
      "  Epoch 16/20, Loss: 13.951397\n",
      "  Epoch 18/20, Loss: 13.813368\n",
      "  Epoch 18/20, Loss: 13.813368\n",
      "  Epoch 20/20, Loss: 13.898205\n",
      "股票 601698 训练完成，最佳损失: 13.524028\n",
      "数据点数量: 1399, 模型保存至: ./../../model\\model_601698.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601699 (127/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 13.898205\n",
      "股票 601698 训练完成，最佳损失: 13.524028\n",
      "数据点数量: 1399, 模型保存至: ./../../model\\model_601698.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601699 (127/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 17.256456\n",
      "  Epoch 1/20, Loss: 17.256456\n",
      "  Epoch 2/20, Loss: 37.172701\n",
      "  Epoch 2/20, Loss: 37.172701\n",
      "  Epoch 4/20, Loss: 13.013297\n",
      "  Epoch 4/20, Loss: 13.013297\n",
      "  Epoch 6/20, Loss: 7.240579\n",
      "  Epoch 6/20, Loss: 7.240579\n",
      "  Epoch 8/20, Loss: 7.169063\n",
      "  Epoch 8/20, Loss: 7.169063\n",
      "  Epoch 10/20, Loss: 4.398416\n",
      "  Epoch 10/20, Loss: 4.398416\n",
      "  Epoch 12/20, Loss: 4.737345\n",
      "  Epoch 12/20, Loss: 4.737345\n",
      "  Epoch 14/20, Loss: 5.955974\n",
      "  Epoch 14/20, Loss: 5.955974\n",
      "  Epoch 16/20, Loss: 4.663313\n",
      "  Epoch 16/20, Loss: 4.663313\n",
      "  Epoch 18/20, Loss: 5.312299\n",
      "  Epoch 18/20, Loss: 5.312299\n",
      "  Epoch 20/20, Loss: 4.594909\n",
      "股票 601699 训练完成，最佳损失: 3.589075\n",
      "数据点数量: 2403, 模型保存至: ./../../model\\model_601699.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601728 (128/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3.722533\n",
      "  Epoch 20/20, Loss: 4.594909\n",
      "股票 601699 训练完成，最佳损失: 3.589075\n",
      "数据点数量: 2403, 模型保存至: ./../../model\\model_601699.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601728 (128/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3.722533\n",
      "  Epoch 2/20, Loss: 4.447973\n",
      "  Epoch 2/20, Loss: 4.447973\n",
      "  Epoch 4/20, Loss: 2.210115\n",
      "  Epoch 4/20, Loss: 2.210115\n",
      "  Epoch 6/20, Loss: 0.568052\n",
      "  Epoch 6/20, Loss: 0.568052\n",
      "  Epoch 8/20, Loss: 0.453110\n",
      "  Epoch 8/20, Loss: 0.453110\n",
      "  Epoch 10/20, Loss: 0.336179\n",
      "  Epoch 10/20, Loss: 0.336179\n",
      "  Epoch 12/20, Loss: 0.193255\n",
      "  Epoch 12/20, Loss: 0.193255\n",
      "  Epoch 14/20, Loss: 0.148079\n",
      "  Epoch 14/20, Loss: 0.148079\n",
      "  Epoch 16/20, Loss: 0.429697\n",
      "  Epoch 16/20, Loss: 0.429697\n",
      "  Epoch 18/20, Loss: 0.925749\n",
      "  Epoch 18/20, Loss: 0.925749\n",
      "  Epoch 20/20, Loss: 0.325031\n",
      "股票 601728 训练完成，最佳损失: 0.148079\n",
      "数据点数量: 875, 模型保存至: ./../../model\\model_601728.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601766 (129/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.325031\n",
      "股票 601728 训练完成，最佳损失: 0.148079\n",
      "数据点数量: 875, 模型保存至: ./../../model\\model_601728.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601766 (129/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 20.831694\n",
      "  Epoch 1/20, Loss: 20.831694\n",
      "  Epoch 2/20, Loss: 8.990685\n",
      "  Epoch 2/20, Loss: 8.990685\n",
      "  Epoch 4/20, Loss: 4.972105\n",
      "  Epoch 4/20, Loss: 4.972105\n",
      "  Epoch 6/20, Loss: 3.786970\n",
      "  Epoch 6/20, Loss: 3.786970\n",
      "  Epoch 8/20, Loss: 2.976909\n",
      "  Epoch 8/20, Loss: 2.976909\n",
      "  Epoch 10/20, Loss: 2.845627\n",
      "  Epoch 10/20, Loss: 2.845627\n",
      "  Epoch 12/20, Loss: 2.658215\n",
      "  Epoch 12/20, Loss: 2.658215\n",
      "  Epoch 14/20, Loss: 1.824001\n",
      "  Epoch 14/20, Loss: 1.824001\n",
      "  Epoch 16/20, Loss: 1.907092\n",
      "  Epoch 16/20, Loss: 1.907092\n",
      "  Epoch 18/20, Loss: 2.267797\n",
      "  Epoch 18/20, Loss: 2.267797\n",
      "  Epoch 20/20, Loss: 1.571860\n",
      "股票 601766 训练完成，最佳损失: 1.571860\n",
      "数据点数量: 2390, 模型保存至: ./../../model\\model_601766.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601788 (130/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.571860\n",
      "股票 601766 训练完成，最佳损失: 1.571860\n",
      "数据点数量: 2390, 模型保存至: ./../../model\\model_601766.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601788 (130/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 61.385300\n",
      "  Epoch 1/20, Loss: 61.385300\n",
      "  Epoch 2/20, Loss: 17.903894\n",
      "  Epoch 2/20, Loss: 17.903894\n",
      "  Epoch 4/20, Loss: 16.891005\n",
      "  Epoch 4/20, Loss: 16.891005\n",
      "  Epoch 6/20, Loss: 17.081249\n",
      "  Epoch 6/20, Loss: 17.081249\n",
      "  Epoch 8/20, Loss: 16.933476\n",
      "  Epoch 8/20, Loss: 16.933476\n",
      "  Epoch 10/20, Loss: 9.366387\n",
      "  Epoch 10/20, Loss: 9.366387\n",
      "  Epoch 12/20, Loss: 7.940765\n",
      "  Epoch 12/20, Loss: 7.940765\n",
      "  Epoch 14/20, Loss: 6.825210\n",
      "  Epoch 14/20, Loss: 6.825210\n",
      "  Epoch 16/20, Loss: 5.301695\n",
      "  Epoch 16/20, Loss: 5.301695\n",
      "  Epoch 18/20, Loss: 4.472108\n",
      "  Epoch 18/20, Loss: 4.472108\n",
      "  Epoch 20/20, Loss: 3.111523\n",
      "股票 601788 训练完成，最佳损失: 3.111523\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601788.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601799 (131/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 3.111523\n",
      "股票 601788 训练完成，最佳损失: 3.111523\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601788.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601799 (131/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 10613.770220\n",
      "  Epoch 1/20, Loss: 10613.770220\n",
      "  Epoch 2/20, Loss: 9213.790407\n",
      "  Epoch 2/20, Loss: 9213.790407\n",
      "  Epoch 4/20, Loss: 7263.571303\n",
      "  Epoch 4/20, Loss: 7263.571303\n",
      "  Epoch 6/20, Loss: 5918.190306\n",
      "  Epoch 6/20, Loss: 5918.190306\n",
      "  Epoch 8/20, Loss: 5014.810863\n",
      "  Epoch 8/20, Loss: 5014.810863\n",
      "  Epoch 10/20, Loss: 4422.864806\n",
      "  Epoch 10/20, Loss: 4422.864806\n",
      "  Epoch 12/20, Loss: 4053.654032\n",
      "  Epoch 12/20, Loss: 4053.654032\n",
      "  Epoch 14/20, Loss: 3831.943688\n",
      "  Epoch 14/20, Loss: 3831.943688\n",
      "  Epoch 16/20, Loss: 3692.099568\n",
      "  Epoch 16/20, Loss: 3692.099568\n",
      "  Epoch 18/20, Loss: 3608.942997\n",
      "  Epoch 18/20, Loss: 3608.942997\n",
      "  Epoch 20/20, Loss: 3559.355418\n",
      "股票 601799 训练完成，最佳损失: 3559.355418\n",
      "数据点数量: 2409, 模型保存至: ./../../model\\model_601799.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601800 (132/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 3559.355418\n",
      "股票 601799 训练完成，最佳损失: 3559.355418\n",
      "数据点数量: 2409, 模型保存至: ./../../model\\model_601799.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601800 (132/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 26.461008\n",
      "  Epoch 1/20, Loss: 26.461008\n",
      "  Epoch 2/20, Loss: 9.321486\n",
      "  Epoch 2/20, Loss: 9.321486\n",
      "  Epoch 4/20, Loss: 8.002799\n",
      "  Epoch 4/20, Loss: 8.002799\n",
      "  Epoch 6/20, Loss: 3.405013\n",
      "  Epoch 6/20, Loss: 3.405013\n",
      "  Epoch 8/20, Loss: 2.087327\n",
      "  Epoch 8/20, Loss: 2.087327\n",
      "  Epoch 10/20, Loss: 1.026801\n",
      "  Epoch 10/20, Loss: 1.026801\n",
      "  Epoch 12/20, Loss: 0.609087\n",
      "  Epoch 12/20, Loss: 0.609087\n",
      "  Epoch 14/20, Loss: 0.558272\n",
      "  Epoch 14/20, Loss: 0.558272\n",
      "  Epoch 16/20, Loss: 0.555005\n",
      "  Epoch 16/20, Loss: 0.555005\n",
      "  Epoch 18/20, Loss: 0.490374\n",
      "  Epoch 18/20, Loss: 0.490374\n",
      "  Epoch 20/20, Loss: 0.454968\n",
      "股票 601800 训练完成，最佳损失: 0.404742\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601800.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601808 (133/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.454968\n",
      "股票 601800 训练完成，最佳损失: 0.404742\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601800.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601808 (133/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 40.278714\n",
      "  Epoch 1/20, Loss: 40.278714\n",
      "  Epoch 2/20, Loss: 14.752091\n",
      "  Epoch 2/20, Loss: 14.752091\n",
      "  Epoch 4/20, Loss: 12.820577\n",
      "  Epoch 4/20, Loss: 12.820577\n",
      "  Epoch 6/20, Loss: 12.742952\n",
      "  Epoch 6/20, Loss: 12.742952\n",
      "  Epoch 8/20, Loss: 12.652258\n",
      "  Epoch 8/20, Loss: 12.652258\n",
      "  Epoch 10/20, Loss: 12.781685\n",
      "  Epoch 10/20, Loss: 12.781685\n",
      "  Epoch 12/20, Loss: 12.827474\n",
      "  Epoch 12/20, Loss: 12.827474\n",
      "  Epoch 14/20, Loss: 12.884766\n",
      "  Epoch 14/20, Loss: 12.884766\n",
      "  Epoch 16/20, Loss: 12.795385\n",
      "  Epoch 16/20, Loss: 12.795385\n",
      "  Epoch 18/20, Loss: 12.691717\n",
      "  Epoch 18/20, Loss: 12.691717\n",
      "  Epoch 20/20, Loss: 12.738365\n",
      "股票 601808 训练完成，最佳损失: 12.652258\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601808.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601816 (134/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 12.738365\n",
      "股票 601808 训练完成，最佳损失: 12.652258\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601808.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601816 (134/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6.996926\n",
      "  Epoch 1/20, Loss: 6.996926\n",
      "  Epoch 2/20, Loss: 0.294937\n",
      "  Epoch 2/20, Loss: 0.294937\n",
      "  Epoch 4/20, Loss: 0.151651\n",
      "  Epoch 4/20, Loss: 0.151651\n",
      "  Epoch 6/20, Loss: 0.140796\n",
      "  Epoch 6/20, Loss: 0.140796\n",
      "  Epoch 8/20, Loss: 0.105746\n",
      "  Epoch 8/20, Loss: 0.105746\n",
      "  Epoch 10/20, Loss: 0.168946\n",
      "  Epoch 10/20, Loss: 0.168946\n",
      "  Epoch 12/20, Loss: 0.095156\n",
      "  Epoch 12/20, Loss: 0.095156\n",
      "  Epoch 14/20, Loss: 0.073215\n",
      "  Epoch 14/20, Loss: 0.073215\n",
      "  Epoch 16/20, Loss: 0.097450\n",
      "  Epoch 16/20, Loss: 0.097450\n",
      "  Epoch 18/20, Loss: 0.209832\n",
      "  Epoch 18/20, Loss: 0.209832\n",
      "  Epoch 20/20, Loss: 0.073319\n",
      "股票 601816 训练完成，最佳损失: 0.071194\n",
      "数据点数量: 1262, 模型保存至: ./../../model\\model_601816.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601818 (135/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.073319\n",
      "股票 601816 训练完成，最佳损失: 0.071194\n",
      "数据点数量: 1262, 模型保存至: ./../../model\\model_601816.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601818 (135/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 0.710804\n",
      "  Epoch 1/20, Loss: 0.710804\n",
      "  Epoch 2/20, Loss: 0.304770\n",
      "  Epoch 2/20, Loss: 0.304770\n",
      "  Epoch 4/20, Loss: 0.070561\n",
      "  Epoch 4/20, Loss: 0.070561\n",
      "  Epoch 6/20, Loss: 0.045092\n",
      "  Epoch 6/20, Loss: 0.045092\n",
      "  Epoch 8/20, Loss: 0.027779\n",
      "  Epoch 8/20, Loss: 0.027779\n",
      "  Epoch 10/20, Loss: 0.030310\n",
      "  Epoch 10/20, Loss: 0.030310\n",
      "  Epoch 12/20, Loss: 0.028340\n",
      "  Epoch 12/20, Loss: 0.028340\n",
      "  Epoch 14/20, Loss: 0.024152\n",
      "  Epoch 14/20, Loss: 0.024152\n",
      "  Epoch 16/20, Loss: 0.023711\n",
      "  Epoch 16/20, Loss: 0.023711\n",
      "  Epoch 18/20, Loss: 0.057785\n",
      "  Epoch 18/20, Loss: 0.057785\n",
      "  Epoch 20/20, Loss: 0.025882\n",
      "股票 601818 训练完成，最佳损失: 0.022164\n",
      "数据点数量: 2411, 模型保存至: ./../../model\\model_601818.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601838 (136/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.025882\n",
      "股票 601818 训练完成，最佳损失: 0.022164\n",
      "数据点数量: 2411, 模型保存至: ./../../model\\model_601818.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601838 (136/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 14.571886\n",
      "  Epoch 1/20, Loss: 14.571886\n",
      "  Epoch 2/20, Loss: 21.894976\n",
      "  Epoch 2/20, Loss: 21.894976\n",
      "  Epoch 4/20, Loss: 18.094970\n",
      "  Epoch 4/20, Loss: 18.094970\n",
      "  Epoch 6/20, Loss: 18.216583\n",
      "  Epoch 6/20, Loss: 18.216583\n",
      "  Epoch 8/20, Loss: 18.472639\n",
      "  Epoch 8/20, Loss: 18.472639\n",
      "  Epoch 10/20, Loss: 18.328316\n",
      "  Epoch 10/20, Loss: 18.328316\n",
      "  Epoch 12/20, Loss: 18.264270\n",
      "  Epoch 12/20, Loss: 18.264270\n",
      "  Epoch 14/20, Loss: 18.247369\n",
      "  Epoch 14/20, Loss: 18.247369\n",
      "  Epoch 16/20, Loss: 18.215989\n",
      "  Epoch 16/20, Loss: 18.215989\n",
      "  Epoch 18/20, Loss: 18.541859\n",
      "  Epoch 18/20, Loss: 18.541859\n",
      "  Epoch 20/20, Loss: 18.112710\n",
      "股票 601838 训练完成，最佳损失: 14.571886\n",
      "数据点数量: 1738, 模型保存至: ./../../model\\model_601838.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601857 (137/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 18.112710\n",
      "股票 601838 训练完成，最佳损失: 14.571886\n",
      "数据点数量: 1738, 模型保存至: ./../../model\\model_601838.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601857 (137/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 11.068619\n",
      "  Epoch 1/20, Loss: 11.068619\n",
      "  Epoch 2/20, Loss: 5.163983\n",
      "  Epoch 2/20, Loss: 5.163983\n",
      "  Epoch 4/20, Loss: 4.727562\n",
      "  Epoch 4/20, Loss: 4.727562\n",
      "  Epoch 6/20, Loss: 2.518795\n",
      "  Epoch 6/20, Loss: 2.518795\n",
      "  Epoch 8/20, Loss: 1.952565\n",
      "  Epoch 8/20, Loss: 1.952565\n",
      "  Epoch 10/20, Loss: 1.551480\n",
      "  Epoch 10/20, Loss: 1.551480\n",
      "  Epoch 12/20, Loss: 0.992818\n",
      "  Epoch 12/20, Loss: 0.992818\n",
      "  Epoch 14/20, Loss: 0.586621\n",
      "  Epoch 14/20, Loss: 0.586621\n",
      "  Epoch 16/20, Loss: 0.456430\n",
      "  Epoch 16/20, Loss: 0.456430\n",
      "  Epoch 18/20, Loss: 0.371120\n",
      "  Epoch 18/20, Loss: 0.371120\n",
      "  Epoch 20/20, Loss: 0.422910\n",
      "股票 601857 训练完成，最佳损失: 0.371120\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601857.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601865 (138/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.422910\n",
      "股票 601857 训练完成，最佳损失: 0.371120\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601857.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601865 (138/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 472.571218\n",
      "  Epoch 1/20, Loss: 472.571218\n",
      "  Epoch 2/20, Loss: 295.726992\n",
      "  Epoch 2/20, Loss: 295.726992\n",
      "  Epoch 4/20, Loss: 178.418287\n",
      "  Epoch 4/20, Loss: 178.418287\n",
      "  Epoch 6/20, Loss: 154.134942\n",
      "  Epoch 6/20, Loss: 154.134942\n",
      "  Epoch 8/20, Loss: 152.420063\n",
      "  Epoch 8/20, Loss: 152.420063\n",
      "  Epoch 10/20, Loss: 127.210151\n",
      "  Epoch 10/20, Loss: 127.210151\n",
      "  Epoch 12/20, Loss: 96.516226\n",
      "  Epoch 12/20, Loss: 96.516226\n",
      "  Epoch 14/20, Loss: 89.602039\n",
      "  Epoch 14/20, Loss: 89.602039\n",
      "  Epoch 16/20, Loss: 80.864911\n",
      "  Epoch 16/20, Loss: 80.864911\n",
      "  Epoch 18/20, Loss: 65.025119\n",
      "  Epoch 18/20, Loss: 65.025119\n",
      "  Epoch 20/20, Loss: 51.659917\n",
      "股票 601865 训练完成，最佳损失: 51.659917\n",
      "数据点数量: 1489, 模型保存至: ./../../model\\model_601865.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601868 (139/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.714616\n",
      "  Epoch 20/20, Loss: 51.659917\n",
      "股票 601865 训练完成，最佳损失: 51.659917\n",
      "数据点数量: 1489, 模型保存至: ./../../model\\model_601865.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601868 (139/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.714616\n",
      "  Epoch 2/20, Loss: 0.229035\n",
      "  Epoch 2/20, Loss: 0.229035\n",
      "  Epoch 4/20, Loss: 0.031472\n",
      "  Epoch 4/20, Loss: 0.031472\n",
      "  Epoch 6/20, Loss: 0.017972\n",
      "  Epoch 6/20, Loss: 0.017972\n",
      "  Epoch 8/20, Loss: 0.017392\n",
      "  Epoch 8/20, Loss: 0.017392\n",
      "  Epoch 10/20, Loss: 0.014044\n",
      "  Epoch 10/20, Loss: 0.014044\n",
      "  Epoch 12/20, Loss: 0.012632\n",
      "  Epoch 12/20, Loss: 0.012632\n",
      "  Epoch 14/20, Loss: 0.012593\n",
      "  Epoch 14/20, Loss: 0.012593\n",
      "  Epoch 16/20, Loss: 0.011623\n",
      "  Epoch 16/20, Loss: 0.011623\n",
      "  Epoch 18/20, Loss: 0.013325\n",
      "  Epoch 18/20, Loss: 0.013325\n",
      "  Epoch 20/20, Loss: 0.011150\n",
      "股票 601868 训练完成，最佳损失: 0.011150\n",
      "数据点数量: 850, 模型保存至: ./../../model\\model_601868.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601872 (140/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.011150\n",
      "股票 601868 训练完成，最佳损失: 0.011150\n",
      "数据点数量: 850, 模型保存至: ./../../model\\model_601868.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601872 (140/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4.583439\n",
      "  Epoch 1/20, Loss: 4.583439\n",
      "  Epoch 2/20, Loss: 2.685920\n",
      "  Epoch 2/20, Loss: 2.685920\n",
      "  Epoch 4/20, Loss: 0.329966\n",
      "  Epoch 4/20, Loss: 0.329966\n",
      "  Epoch 6/20, Loss: 0.191241\n",
      "  Epoch 6/20, Loss: 0.191241\n",
      "  Epoch 8/20, Loss: 0.224193\n",
      "  Epoch 8/20, Loss: 0.224193\n",
      "  Epoch 10/20, Loss: 0.605208\n",
      "  Epoch 10/20, Loss: 0.605208\n",
      "  Epoch 12/20, Loss: 0.626999\n",
      "  Epoch 12/20, Loss: 0.626999\n",
      "  Epoch 14/20, Loss: 0.171432\n",
      "  Epoch 14/20, Loss: 0.171432\n",
      "  Epoch 16/20, Loss: 0.173515\n",
      "  Epoch 16/20, Loss: 0.173515\n",
      "  Epoch 18/20, Loss: 0.291931\n",
      "  Epoch 18/20, Loss: 0.291931\n",
      "  Epoch 20/20, Loss: 0.234167\n",
      "股票 601872 训练完成，最佳损失: 0.162537\n",
      "数据点数量: 2322, 模型保存至: ./../../model\\model_601872.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601877 (141/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.234167\n",
      "股票 601872 训练完成，最佳损失: 0.162537\n",
      "数据点数量: 2322, 模型保存至: ./../../model\\model_601872.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601877 (141/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 279.981094\n",
      "  Epoch 1/20, Loss: 279.981094\n",
      "  Epoch 2/20, Loss: 119.383303\n",
      "  Epoch 2/20, Loss: 119.383303\n",
      "  Epoch 4/20, Loss: 82.306420\n",
      "  Epoch 4/20, Loss: 82.306420\n",
      "  Epoch 6/20, Loss: 84.174223\n",
      "  Epoch 6/20, Loss: 84.174223\n",
      "  Epoch 8/20, Loss: 84.513268\n",
      "  Epoch 8/20, Loss: 84.513268\n",
      "  Epoch 10/20, Loss: 85.115862\n",
      "  Epoch 10/20, Loss: 85.115862\n",
      "  Epoch 12/20, Loss: 84.809474\n",
      "  Epoch 12/20, Loss: 84.809474\n",
      "  Epoch 14/20, Loss: 85.854026\n",
      "  Epoch 14/20, Loss: 85.854026\n",
      "  Epoch 16/20, Loss: 85.777756\n",
      "  Epoch 16/20, Loss: 85.777756\n",
      "  Epoch 18/20, Loss: 85.413103\n",
      "  Epoch 18/20, Loss: 85.413103\n",
      "  Epoch 20/20, Loss: 85.869535\n",
      "股票 601877 训练完成，最佳损失: 82.306420\n",
      "数据点数量: 2285, 模型保存至: ./../../model\\model_601877.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601878 (142/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 85.869535\n",
      "股票 601877 训练完成，最佳损失: 82.306420\n",
      "数据点数量: 2285, 模型保存至: ./../../model\\model_601877.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601878 (142/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 31.824602\n",
      "  Epoch 1/20, Loss: 31.824602\n",
      "  Epoch 2/20, Loss: 8.675778\n",
      "  Epoch 2/20, Loss: 8.675778\n",
      "  Epoch 4/20, Loss: 8.621799\n",
      "  Epoch 4/20, Loss: 8.621799\n",
      "  Epoch 6/20, Loss: 8.446250\n",
      "  Epoch 6/20, Loss: 8.446250\n",
      "  Epoch 8/20, Loss: 8.432208\n",
      "  Epoch 8/20, Loss: 8.432208\n",
      "  Epoch 10/20, Loss: 8.513086\n",
      "  Epoch 10/20, Loss: 8.513086\n",
      "  Epoch 12/20, Loss: 8.503186\n",
      "  Epoch 12/20, Loss: 8.503186\n",
      "  Epoch 14/20, Loss: 8.521418\n",
      "  Epoch 14/20, Loss: 8.521418\n",
      "  Epoch 16/20, Loss: 8.521257\n",
      "  Epoch 16/20, Loss: 8.521257\n",
      "  Epoch 18/20, Loss: 8.554813\n",
      "  Epoch 18/20, Loss: 8.554813\n",
      "  Epoch 20/20, Loss: 8.415644\n",
      "股票 601878 训练完成，最佳损失: 8.389634\n",
      "数据点数量: 1889, 模型保存至: ./../../model\\model_601878.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601881 (143/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 8.415644\n",
      "股票 601878 训练完成，最佳损失: 8.389634\n",
      "数据点数量: 1889, 模型保存至: ./../../model\\model_601878.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601881 (143/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 19.959126\n",
      "  Epoch 1/20, Loss: 19.959126\n",
      "  Epoch 2/20, Loss: 7.720273\n",
      "  Epoch 2/20, Loss: 7.720273\n",
      "  Epoch 4/20, Loss: 6.985367\n",
      "  Epoch 4/20, Loss: 6.985367\n",
      "  Epoch 6/20, Loss: 6.815054\n",
      "  Epoch 6/20, Loss: 6.815054\n",
      "  Epoch 8/20, Loss: 6.827499\n",
      "  Epoch 8/20, Loss: 6.827499\n",
      "  Epoch 10/20, Loss: 6.842151\n",
      "  Epoch 10/20, Loss: 6.842151\n",
      "  Epoch 12/20, Loss: 6.784365\n",
      "  Epoch 12/20, Loss: 6.784365\n",
      "  Epoch 14/20, Loss: 6.876338\n",
      "  Epoch 14/20, Loss: 6.876338\n",
      "  Epoch 16/20, Loss: 6.821197\n",
      "  Epoch 16/20, Loss: 6.821197\n",
      "  Epoch 18/20, Loss: 6.823383\n",
      "  Epoch 18/20, Loss: 6.823383\n",
      "  Epoch 20/20, Loss: 6.838031\n",
      "股票 601881 训练完成，最佳损失: 6.665181\n",
      "数据点数量: 1989, 模型保存至: ./../../model\\model_601881.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601888 (144/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 6.838031\n",
      "股票 601881 训练完成，最佳损失: 6.665181\n",
      "数据点数量: 1989, 模型保存至: ./../../model\\model_601881.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601888 (144/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 14828.023771\n",
      "  Epoch 1/20, Loss: 14828.023771\n",
      "  Epoch 2/20, Loss: 13587.921923\n",
      "  Epoch 2/20, Loss: 13587.921923\n",
      "  Epoch 4/20, Loss: 11737.810591\n",
      "  Epoch 4/20, Loss: 11737.810591\n",
      "  Epoch 6/20, Loss: 10374.721492\n",
      "  Epoch 6/20, Loss: 10374.721492\n",
      "  Epoch 8/20, Loss: 9365.033884\n",
      "  Epoch 8/20, Loss: 9365.033884\n",
      "  Epoch 10/20, Loss: 8644.515039\n",
      "  Epoch 10/20, Loss: 8644.515039\n",
      "  Epoch 12/20, Loss: 8136.052688\n",
      "  Epoch 12/20, Loss: 8136.052688\n",
      "  Epoch 14/20, Loss: 7763.944779\n",
      "  Epoch 14/20, Loss: 7763.944779\n",
      "  Epoch 16/20, Loss: 7528.617136\n",
      "  Epoch 16/20, Loss: 7528.617136\n",
      "  Epoch 18/20, Loss: 7369.477368\n",
      "  Epoch 18/20, Loss: 7369.477368\n",
      "  Epoch 20/20, Loss: 7226.012856\n",
      "股票 601888 训练完成，最佳损失: 7226.012856\n",
      "数据点数量: 2390, 模型保存至: ./../../model\\model_601888.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601898 (145/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 7226.012856\n",
      "股票 601888 训练完成，最佳损失: 7226.012856\n",
      "数据点数量: 2390, 模型保存至: ./../../model\\model_601888.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601898 (145/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 8.890239\n",
      "  Epoch 1/20, Loss: 8.890239\n",
      "  Epoch 2/20, Loss: 14.709563\n",
      "  Epoch 2/20, Loss: 14.709563\n",
      "  Epoch 4/20, Loss: 11.147826\n",
      "  Epoch 4/20, Loss: 11.147826\n",
      "  Epoch 6/20, Loss: 11.120634\n",
      "  Epoch 6/20, Loss: 11.120634\n",
      "  Epoch 8/20, Loss: 11.022774\n",
      "  Epoch 8/20, Loss: 11.022774\n",
      "  Epoch 10/20, Loss: 10.942939\n",
      "  Epoch 10/20, Loss: 10.942939\n",
      "  Epoch 12/20, Loss: 14.981122\n",
      "  Epoch 12/20, Loss: 14.981122\n",
      "  Epoch 14/20, Loss: 4.866770\n",
      "  Epoch 14/20, Loss: 4.866770\n",
      "  Epoch 16/20, Loss: 3.784019\n",
      "  Epoch 16/20, Loss: 3.784019\n",
      "  Epoch 18/20, Loss: 2.856571\n",
      "  Epoch 18/20, Loss: 2.856571\n",
      "  Epoch 20/20, Loss: 2.889340\n",
      "股票 601898 训练完成，最佳损失: 2.721219\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601898.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601899 (146/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 2.889340\n",
      "股票 601898 训练完成，最佳损失: 2.721219\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601898.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601899 (146/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 9.698482\n",
      "  Epoch 1/20, Loss: 9.698482\n",
      "  Epoch 2/20, Loss: 39.622428\n",
      "  Epoch 2/20, Loss: 39.622428\n",
      "  Epoch 4/20, Loss: 6.997411\n",
      "  Epoch 4/20, Loss: 6.997411\n",
      "  Epoch 6/20, Loss: 6.679739\n",
      "  Epoch 6/20, Loss: 6.679739\n",
      "  Epoch 8/20, Loss: 6.260488\n",
      "  Epoch 8/20, Loss: 6.260488\n",
      "  Epoch 10/20, Loss: 5.503532\n",
      "  Epoch 10/20, Loss: 5.503532\n",
      "  Epoch 12/20, Loss: 4.007259\n",
      "  Epoch 12/20, Loss: 4.007259\n",
      "  Epoch 14/20, Loss: 5.627645\n",
      "  Epoch 14/20, Loss: 5.627645\n",
      "  Epoch 16/20, Loss: 3.817422\n",
      "  Epoch 16/20, Loss: 3.817422\n",
      "  Epoch 18/20, Loss: 2.284346\n",
      "  Epoch 18/20, Loss: 2.284346\n",
      "  Epoch 20/20, Loss: 1.545704\n",
      "股票 601899 训练完成，最佳损失: 1.545704\n",
      "数据点数量: 2392, 模型保存至: ./../../model\\model_601899.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601901 (147/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1.545704\n",
      "股票 601899 训练完成，最佳损失: 1.545704\n",
      "数据点数量: 2392, 模型保存至: ./../../model\\model_601899.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601901 (147/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 11.557531\n",
      "  Epoch 1/20, Loss: 11.557531\n",
      "  Epoch 2/20, Loss: 2.330426\n",
      "  Epoch 2/20, Loss: 2.330426\n",
      "  Epoch 4/20, Loss: 1.612000\n",
      "  Epoch 4/20, Loss: 1.612000\n",
      "  Epoch 6/20, Loss: 0.894657\n",
      "  Epoch 6/20, Loss: 0.894657\n",
      "  Epoch 8/20, Loss: 0.632768\n",
      "  Epoch 8/20, Loss: 0.632768\n",
      "  Epoch 10/20, Loss: 0.715957\n",
      "  Epoch 10/20, Loss: 0.715957\n",
      "  Epoch 12/20, Loss: 0.586282\n",
      "  Epoch 12/20, Loss: 0.586282\n",
      "  Epoch 14/20, Loss: 0.465637\n",
      "  Epoch 14/20, Loss: 0.465637\n",
      "  Epoch 16/20, Loss: 0.437521\n",
      "  Epoch 16/20, Loss: 0.437521\n",
      "  Epoch 18/20, Loss: 0.497354\n",
      "  Epoch 18/20, Loss: 0.497354\n",
      "  Epoch 20/20, Loss: 0.343793\n",
      "股票 601901 训练完成，最佳损失: 0.343793\n",
      "数据点数量: 2409, 模型保存至: ./../../model\\model_601901.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601916 (148/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.343793\n",
      "股票 601901 训练完成，最佳损失: 0.343793\n",
      "数据点数量: 2409, 模型保存至: ./../../model\\model_601901.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601916 (148/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.761810\n",
      "  Epoch 1/20, Loss: 1.761810\n",
      "  Epoch 2/20, Loss: 0.157002\n",
      "  Epoch 2/20, Loss: 0.157002\n",
      "  Epoch 4/20, Loss: 0.165241\n",
      "  Epoch 4/20, Loss: 0.165241\n",
      "  Epoch 6/20, Loss: 0.078952\n",
      "  Epoch 6/20, Loss: 0.078952\n",
      "  Epoch 8/20, Loss: 0.036356\n",
      "  Epoch 8/20, Loss: 0.036356\n",
      "  Epoch 10/20, Loss: 0.050158\n",
      "  Epoch 10/20, Loss: 0.050158\n",
      "  Epoch 12/20, Loss: 0.032753\n",
      "  Epoch 12/20, Loss: 0.032753\n",
      "  Epoch 14/20, Loss: 0.033832\n",
      "  Epoch 14/20, Loss: 0.033832\n",
      "  Epoch 16/20, Loss: 0.029399\n",
      "  Epoch 16/20, Loss: 0.029399\n",
      "  Epoch 18/20, Loss: 0.028274\n",
      "  Epoch 18/20, Loss: 0.028274\n",
      "  Epoch 20/20, Loss: 0.032631\n",
      "股票 601916 训练完成，最佳损失: 0.025949\n",
      "数据点数量: 1292, 模型保存至: ./../../model\\model_601916.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601919 (149/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.032631\n",
      "股票 601916 训练完成，最佳损失: 0.025949\n",
      "数据点数量: 1292, 模型保存至: ./../../model\\model_601916.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601919 (149/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 19.088631\n",
      "  Epoch 1/20, Loss: 19.088631\n",
      "  Epoch 2/20, Loss: 9.375876\n",
      "  Epoch 2/20, Loss: 9.375876\n",
      "  Epoch 4/20, Loss: 5.641140\n",
      "  Epoch 4/20, Loss: 5.641140\n",
      "  Epoch 6/20, Loss: 4.974788\n",
      "  Epoch 6/20, Loss: 4.974788\n",
      "  Epoch 8/20, Loss: 4.748213\n",
      "  Epoch 8/20, Loss: 4.748213\n",
      "  Epoch 10/20, Loss: 4.384374\n",
      "  Epoch 10/20, Loss: 4.384374\n",
      "  Epoch 12/20, Loss: 5.244030\n",
      "  Epoch 12/20, Loss: 5.244030\n",
      "  Epoch 14/20, Loss: 2.445103\n",
      "  Epoch 14/20, Loss: 2.445103\n",
      "  Epoch 16/20, Loss: 4.179050\n",
      "  Epoch 16/20, Loss: 4.179050\n",
      "  Epoch 18/20, Loss: 1.715976\n",
      "  Epoch 18/20, Loss: 1.715976\n",
      "  Epoch 20/20, Loss: 2.971334\n",
      "股票 601919 训练完成，最佳损失: 1.416638\n",
      "数据点数量: 2279, 模型保存至: ./../../model\\model_601919.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601939 (150/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 2.971334\n",
      "股票 601919 训练完成，最佳损失: 1.416638\n",
      "数据点数量: 2279, 模型保存至: ./../../model\\model_601919.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601939 (150/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.349555\n",
      "  Epoch 1/20, Loss: 1.349555\n",
      "  Epoch 2/20, Loss: 3.899851\n",
      "  Epoch 2/20, Loss: 3.899851\n",
      "  Epoch 4/20, Loss: 0.844464\n",
      "  Epoch 4/20, Loss: 0.844464\n",
      "  Epoch 6/20, Loss: 0.658996\n",
      "  Epoch 6/20, Loss: 0.658996\n",
      "  Epoch 8/20, Loss: 0.678203\n",
      "  Epoch 8/20, Loss: 0.678203\n",
      "  Epoch 10/20, Loss: 0.630846\n",
      "  Epoch 10/20, Loss: 0.630846\n",
      "  Epoch 12/20, Loss: 0.480138\n",
      "  Epoch 12/20, Loss: 0.480138\n",
      "  Epoch 14/20, Loss: 0.255081\n",
      "  Epoch 14/20, Loss: 0.255081\n",
      "  Epoch 16/20, Loss: 0.350353\n",
      "  Epoch 16/20, Loss: 0.350353\n",
      "  Epoch 18/20, Loss: 0.173788\n",
      "  Epoch 18/20, Loss: 0.173788\n",
      "  Epoch 20/20, Loss: 0.224816\n",
      "股票 601939 训练完成，最佳损失: 0.145569\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601939.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601985 (151/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.224816\n",
      "股票 601939 训练完成，最佳损失: 0.145569\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601939.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601985 (151/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 12.220554\n",
      "  Epoch 1/20, Loss: 12.220554\n",
      "  Epoch 2/20, Loss: 5.145111\n",
      "  Epoch 2/20, Loss: 5.145111\n",
      "  Epoch 4/20, Loss: 5.460493\n",
      "  Epoch 4/20, Loss: 5.460493\n",
      "  Epoch 6/20, Loss: 2.216257\n",
      "  Epoch 6/20, Loss: 2.216257\n",
      "  Epoch 8/20, Loss: 1.616416\n",
      "  Epoch 8/20, Loss: 1.616416\n",
      "  Epoch 10/20, Loss: 1.167115\n",
      "  Epoch 10/20, Loss: 1.167115\n",
      "  Epoch 12/20, Loss: 0.794486\n",
      "  Epoch 12/20, Loss: 0.794486\n",
      "  Epoch 14/20, Loss: 0.430911\n",
      "  Epoch 14/20, Loss: 0.430911\n",
      "  Epoch 16/20, Loss: 0.330929\n",
      "  Epoch 16/20, Loss: 0.330929\n",
      "  Epoch 18/20, Loss: 0.337672\n",
      "  Epoch 18/20, Loss: 0.337672\n",
      "  Epoch 20/20, Loss: 0.295158\n",
      "股票 601985 训练完成，最佳损失: 0.258615\n",
      "数据点数量: 2386, 模型保存至: ./../../model\\model_601985.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601988 (152/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.295158\n",
      "股票 601985 训练完成，最佳损失: 0.258615\n",
      "数据点数量: 2386, 模型保存至: ./../../model\\model_601985.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601988 (152/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 0.478094\n",
      "  Epoch 1/20, Loss: 0.478094\n",
      "  Epoch 2/20, Loss: 1.083863\n",
      "  Epoch 2/20, Loss: 1.083863\n",
      "  Epoch 4/20, Loss: 0.155149\n",
      "  Epoch 4/20, Loss: 0.155149\n",
      "  Epoch 6/20, Loss: 0.275436\n",
      "  Epoch 6/20, Loss: 0.275436\n",
      "  Epoch 8/20, Loss: 0.106885\n",
      "  Epoch 8/20, Loss: 0.106885\n",
      "  Epoch 10/20, Loss: 0.043515\n",
      "  Epoch 10/20, Loss: 0.043515\n",
      "  Epoch 12/20, Loss: 0.052525\n",
      "  Epoch 12/20, Loss: 0.052525\n",
      "  Epoch 14/20, Loss: 0.048010\n",
      "  Epoch 14/20, Loss: 0.048010\n",
      "  Epoch 16/20, Loss: 0.072223\n",
      "  Epoch 16/20, Loss: 0.072223\n",
      "  Epoch 18/20, Loss: 0.188249\n",
      "  Epoch 18/20, Loss: 0.188249\n",
      "  Epoch 20/20, Loss: 0.130339\n",
      "股票 601988 训练完成，最佳损失: 0.042362\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601988.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601989 (153/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.130339\n",
      "股票 601988 训练完成，最佳损失: 0.042362\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_601988.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601989 (153/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 14.353721\n",
      "  Epoch 1/20, Loss: 14.353721\n",
      "  Epoch 2/20, Loss: 6.196052\n",
      "  Epoch 2/20, Loss: 6.196052\n",
      "  Epoch 4/20, Loss: 3.521078\n",
      "  Epoch 4/20, Loss: 3.521078\n",
      "  Epoch 6/20, Loss: 2.797161\n",
      "  Epoch 6/20, Loss: 2.797161\n",
      "  Epoch 8/20, Loss: 2.509366\n",
      "  Epoch 8/20, Loss: 2.509366\n",
      "  Epoch 10/20, Loss: 2.190788\n",
      "  Epoch 10/20, Loss: 2.190788\n",
      "  Epoch 12/20, Loss: 1.909545\n",
      "  Epoch 12/20, Loss: 1.909545\n",
      "  Epoch 14/20, Loss: 1.451844\n",
      "  Epoch 14/20, Loss: 1.451844\n",
      "  Epoch 16/20, Loss: 1.142783\n",
      "  Epoch 16/20, Loss: 1.142783\n",
      "  Epoch 18/20, Loss: 1.015725\n",
      "  Epoch 18/20, Loss: 1.015725\n",
      "  Epoch 20/20, Loss: 0.808084\n",
      "股票 601989 训练完成，最佳损失: 0.808084\n",
      "数据点数量: 2276, 模型保存至: ./../../model\\model_601989.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601995 (154/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.808084\n",
      "股票 601989 训练完成，最佳损失: 0.808084\n",
      "数据点数量: 2276, 模型保存至: ./../../model\\model_601989.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601995 (154/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1322.963469\n",
      "  Epoch 2/20, Loss: 918.054526\n",
      "  Epoch 1/20, Loss: 1322.963469\n",
      "  Epoch 2/20, Loss: 918.054526\n",
      "  Epoch 4/20, Loss: 551.924031\n",
      "  Epoch 4/20, Loss: 551.924031\n",
      "  Epoch 6/20, Loss: 329.685049\n",
      "  Epoch 6/20, Loss: 329.685049\n",
      "  Epoch 8/20, Loss: 205.522280\n",
      "  Epoch 8/20, Loss: 205.522280\n",
      "  Epoch 10/20, Loss: 146.073712\n",
      "  Epoch 10/20, Loss: 146.073712\n",
      "  Epoch 12/20, Loss: 116.390101\n",
      "  Epoch 12/20, Loss: 116.390101\n",
      "  Epoch 14/20, Loss: 101.722356\n",
      "  Epoch 14/20, Loss: 101.722356\n",
      "  Epoch 16/20, Loss: 97.066539\n",
      "  Epoch 16/20, Loss: 97.066539\n",
      "  Epoch 18/20, Loss: 95.202780\n",
      "  Epoch 18/20, Loss: 95.202780\n",
      "  Epoch 20/20, Loss: 93.068264\n",
      "股票 601995 训练完成，最佳损失: 93.068264\n",
      "数据点数量: 1073, 模型保存至: ./../../model\\model_601995.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601998 (155/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 93.068264\n",
      "股票 601995 训练完成，最佳损失: 93.068264\n",
      "数据点数量: 1073, 模型保存至: ./../../model\\model_601995.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 601998 (155/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2.840839\n",
      "  Epoch 1/20, Loss: 2.840839\n",
      "  Epoch 2/20, Loss: 2.402675\n",
      "  Epoch 2/20, Loss: 2.402675\n",
      "  Epoch 4/20, Loss: 0.500961\n",
      "  Epoch 4/20, Loss: 0.500961\n",
      "  Epoch 6/20, Loss: 0.124718\n",
      "  Epoch 6/20, Loss: 0.124718\n",
      "  Epoch 8/20, Loss: 0.127875\n",
      "  Epoch 8/20, Loss: 0.127875\n",
      "  Epoch 10/20, Loss: 0.103283\n",
      "  Epoch 10/20, Loss: 0.103283\n",
      "  Epoch 12/20, Loss: 0.236382\n",
      "  Epoch 12/20, Loss: 0.236382\n",
      "  Epoch 14/20, Loss: 0.095665\n",
      "  Epoch 14/20, Loss: 0.095665\n",
      "  Epoch 16/20, Loss: 0.090915\n",
      "  Epoch 16/20, Loss: 0.090915\n",
      "  Epoch 18/20, Loss: 0.097264\n",
      "  Epoch 18/20, Loss: 0.097264\n",
      "  Epoch 20/20, Loss: 0.091965\n",
      "股票 601998 训练完成，最佳损失: 0.090915\n",
      "数据点数量: 2420, 模型保存至: ./../../model\\model_601998.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603019 (156/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.091965\n",
      "股票 601998 训练完成，最佳损失: 0.090915\n",
      "数据点数量: 2420, 模型保存至: ./../../model\\model_601998.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603019 (156/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 487.260133\n",
      "  Epoch 1/20, Loss: 487.260133\n",
      "  Epoch 2/20, Loss: 261.281880\n",
      "  Epoch 2/20, Loss: 261.281880\n",
      "  Epoch 4/20, Loss: 200.995218\n",
      "  Epoch 4/20, Loss: 200.995218\n",
      "  Epoch 6/20, Loss: 204.639443\n",
      "  Epoch 6/20, Loss: 204.639443\n",
      "  Epoch 8/20, Loss: 205.417809\n",
      "  Epoch 8/20, Loss: 205.417809\n",
      "  Epoch 10/20, Loss: 207.077246\n",
      "  Epoch 10/20, Loss: 207.077246\n",
      "  Epoch 12/20, Loss: 208.055984\n",
      "  Epoch 12/20, Loss: 208.055984\n",
      "  Epoch 14/20, Loss: 207.145489\n",
      "  Epoch 14/20, Loss: 207.145489\n",
      "  Epoch 16/20, Loss: 207.519687\n",
      "  Epoch 16/20, Loss: 207.519687\n",
      "  Epoch 18/20, Loss: 207.483803\n",
      "  Epoch 18/20, Loss: 207.483803\n",
      "  Epoch 20/20, Loss: 207.524127\n",
      "股票 603019 训练完成，最佳损失: 200.995218\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_603019.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603195 (157/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 207.524127\n",
      "股票 603019 训练完成，最佳损失: 200.995218\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_603019.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603195 (157/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4139.135962\n",
      "  Epoch 1/20, Loss: 4139.135962\n",
      "  Epoch 2/20, Loss: 3373.180054\n",
      "  Epoch 2/20, Loss: 3373.180054\n",
      "  Epoch 4/20, Loss: 2394.265735\n",
      "  Epoch 4/20, Loss: 2394.265735\n",
      "  Epoch 6/20, Loss: 1671.680637\n",
      "  Epoch 6/20, Loss: 1671.680637\n",
      "  Epoch 8/20, Loss: 1133.577422\n",
      "  Epoch 8/20, Loss: 1133.577422\n",
      "  Epoch 10/20, Loss: 753.454725\n",
      "  Epoch 10/20, Loss: 753.454725\n",
      "  Epoch 12/20, Loss: 497.982949\n",
      "  Epoch 12/20, Loss: 497.982949\n",
      "  Epoch 14/20, Loss: 334.271565\n",
      "  Epoch 14/20, Loss: 334.271565\n",
      "  Epoch 16/20, Loss: 228.607522\n",
      "  Epoch 16/20, Loss: 228.607522\n",
      "  Epoch 18/20, Loss: 167.404974\n",
      "  Epoch 18/20, Loss: 167.404974\n",
      "  Epoch 20/20, Loss: 131.603968\n",
      "股票 603195 训练完成，最佳损失: 131.603968\n",
      "数据点数量: 1253, 模型保存至: ./../../model\\model_603195.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603259 (158/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 131.603968\n",
      "股票 603195 训练完成，最佳损失: 131.603968\n",
      "数据点数量: 1253, 模型保存至: ./../../model\\model_603195.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603259 (158/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4918.556166\n",
      "  Epoch 1/20, Loss: 4918.556166\n",
      "  Epoch 2/20, Loss: 4170.655448\n",
      "  Epoch 2/20, Loss: 4170.655448\n",
      "  Epoch 4/20, Loss: 3114.510810\n",
      "  Epoch 4/20, Loss: 3114.510810\n",
      "  Epoch 6/20, Loss: 2380.328663\n",
      "  Epoch 6/20, Loss: 2380.328663\n",
      "  Epoch 8/20, Loss: 1883.882737\n",
      "  Epoch 8/20, Loss: 1883.882737\n",
      "  Epoch 10/20, Loss: 1556.606305\n",
      "  Epoch 10/20, Loss: 1556.606305\n",
      "  Epoch 12/20, Loss: 1362.156323\n",
      "  Epoch 12/20, Loss: 1362.156323\n",
      "  Epoch 14/20, Loss: 1231.409916\n",
      "  Epoch 14/20, Loss: 1231.409916\n",
      "  Epoch 16/20, Loss: 1156.556762\n",
      "  Epoch 16/20, Loss: 1156.556762\n",
      "  Epoch 18/20, Loss: 1114.350973\n",
      "  Epoch 18/20, Loss: 1114.350973\n",
      "  Epoch 20/20, Loss: 1096.682271\n",
      "股票 603259 训练完成，最佳损失: 1096.682271\n",
      "数据点数量: 1678, 模型保存至: ./../../model\\model_603259.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603260 (159/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1096.682271\n",
      "股票 603259 训练完成，最佳损失: 1096.682271\n",
      "数据点数量: 1678, 模型保存至: ./../../model\\model_603259.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603260 (159/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3790.702627\n",
      "  Epoch 1/20, Loss: 3790.702627\n",
      "  Epoch 2/20, Loss: 3186.617525\n",
      "  Epoch 2/20, Loss: 3186.617525\n",
      "  Epoch 4/20, Loss: 2442.331085\n",
      "  Epoch 4/20, Loss: 2442.331085\n",
      "  Epoch 6/20, Loss: 1980.157247\n",
      "  Epoch 6/20, Loss: 1980.157247\n",
      "  Epoch 8/20, Loss: 1720.852372\n",
      "  Epoch 8/20, Loss: 1720.852372\n",
      "  Epoch 10/20, Loss: 1567.146559\n",
      "  Epoch 10/20, Loss: 1567.146559\n",
      "  Epoch 12/20, Loss: 1490.714080\n",
      "  Epoch 12/20, Loss: 1490.714080\n",
      "  Epoch 14/20, Loss: 1443.665962\n",
      "  Epoch 14/20, Loss: 1443.665962\n",
      "  Epoch 16/20, Loss: 1426.330106\n",
      "  Epoch 16/20, Loss: 1426.330106\n",
      "  Epoch 18/20, Loss: 1414.547001\n",
      "  Epoch 18/20, Loss: 1414.547001\n",
      "  Epoch 20/20, Loss: 1405.499531\n",
      "股票 603260 训练完成，最佳损失: 1405.499531\n",
      "数据点数量: 1804, 模型保存至: ./../../model\\model_603260.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603288 (160/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1405.499531\n",
      "股票 603260 训练完成，最佳损失: 1405.499531\n",
      "数据点数量: 1804, 模型保存至: ./../../model\\model_603260.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603288 (160/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1733.915323\n",
      "  Epoch 1/20, Loss: 1733.915323\n",
      "  Epoch 2/20, Loss: 1328.447147\n",
      "  Epoch 2/20, Loss: 1328.447147\n",
      "  Epoch 4/20, Loss: 949.266881\n",
      "  Epoch 4/20, Loss: 949.266881\n",
      "  Epoch 6/20, Loss: 819.139460\n",
      "  Epoch 6/20, Loss: 819.139460\n",
      "  Epoch 8/20, Loss: 779.699926\n",
      "  Epoch 8/20, Loss: 779.699926\n",
      "  Epoch 10/20, Loss: 772.877871\n",
      "  Epoch 10/20, Loss: 772.877871\n",
      "  Epoch 12/20, Loss: 771.259398\n",
      "  Epoch 12/20, Loss: 771.259398\n",
      "  Epoch 14/20, Loss: 773.548169\n",
      "  Epoch 14/20, Loss: 773.548169\n",
      "  Epoch 16/20, Loss: 773.034765\n",
      "  Epoch 16/20, Loss: 773.034765\n",
      "  Epoch 18/20, Loss: 778.139506\n",
      "  Epoch 18/20, Loss: 778.139506\n",
      "  Epoch 20/20, Loss: 777.636826\n",
      "股票 603288 训练完成，最佳损失: 771.259398\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_603288.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603296 (161/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3126.434849\n",
      "  Epoch 2/20, Loss: 2555.471680\n",
      "  Epoch 20/20, Loss: 777.636826\n",
      "股票 603288 训练完成，最佳损失: 771.259398\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_603288.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603296 (161/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3126.434849\n",
      "  Epoch 2/20, Loss: 2555.471680\n",
      "  Epoch 4/20, Loss: 2216.863316\n",
      "  Epoch 6/20, Loss: 1916.695661\n",
      "  Epoch 4/20, Loss: 2216.863316\n",
      "  Epoch 6/20, Loss: 1916.695661\n",
      "  Epoch 8/20, Loss: 1654.842146\n",
      "  Epoch 10/20, Loss: 1419.546108\n",
      "  Epoch 8/20, Loss: 1654.842146\n",
      "  Epoch 10/20, Loss: 1419.546108\n",
      "  Epoch 12/20, Loss: 1220.155770\n",
      "  Epoch 14/20, Loss: 1039.934396\n",
      "  Epoch 12/20, Loss: 1220.155770\n",
      "  Epoch 14/20, Loss: 1039.934396\n",
      "  Epoch 16/20, Loss: 890.450583\n",
      "  Epoch 18/20, Loss: 763.128405\n",
      "  Epoch 16/20, Loss: 890.450583\n",
      "  Epoch 18/20, Loss: 763.128405\n",
      "  Epoch 20/20, Loss: 662.228958\n",
      "股票 603296 训练完成，最佳损失: 662.228958\n",
      "数据点数量: 400, 模型保存至: ./../../model\\model_603296.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603369 (162/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 662.228958\n",
      "股票 603296 训练完成，最佳损失: 662.228958\n",
      "数据点数量: 400, 模型保存至: ./../../model\\model_603296.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603369 (162/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 658.321381\n",
      "  Epoch 1/20, Loss: 658.321381\n",
      "  Epoch 2/20, Loss: 454.371197\n",
      "  Epoch 2/20, Loss: 454.371197\n",
      "  Epoch 4/20, Loss: 359.854448\n",
      "  Epoch 4/20, Loss: 359.854448\n",
      "  Epoch 6/20, Loss: 354.149824\n",
      "  Epoch 6/20, Loss: 354.149824\n",
      "  Epoch 8/20, Loss: 356.994889\n",
      "  Epoch 8/20, Loss: 356.994889\n",
      "  Epoch 10/20, Loss: 360.592232\n",
      "  Epoch 10/20, Loss: 360.592232\n",
      "  Epoch 12/20, Loss: 359.102983\n",
      "  Epoch 12/20, Loss: 359.102983\n",
      "  Epoch 14/20, Loss: 360.933680\n",
      "  Epoch 14/20, Loss: 360.933680\n",
      "  Epoch 16/20, Loss: 361.721969\n",
      "  Epoch 16/20, Loss: 361.721969\n",
      "  Epoch 18/20, Loss: 363.182996\n",
      "  Epoch 18/20, Loss: 363.182996\n",
      "  Epoch 20/20, Loss: 362.848800\n",
      "股票 603369 训练完成，最佳损失: 353.074010\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_603369.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603392 (163/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 362.848800\n",
      "股票 603369 训练完成，最佳损失: 353.074010\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_603369.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603392 (163/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6246.267141\n",
      "  Epoch 1/20, Loss: 6246.267141\n",
      "  Epoch 2/20, Loss: 5426.530800\n",
      "  Epoch 2/20, Loss: 5426.530800\n",
      "  Epoch 4/20, Loss: 4326.450491\n",
      "  Epoch 4/20, Loss: 4326.450491\n",
      "  Epoch 6/20, Loss: 3438.630808\n",
      "  Epoch 6/20, Loss: 3438.630808\n",
      "  Epoch 8/20, Loss: 2737.526851\n",
      "  Epoch 8/20, Loss: 2737.526851\n",
      "  Epoch 10/20, Loss: 2173.148086\n",
      "  Epoch 10/20, Loss: 2173.148086\n",
      "  Epoch 12/20, Loss: 1752.899159\n",
      "  Epoch 12/20, Loss: 1752.899159\n",
      "  Epoch 14/20, Loss: 1417.240360\n",
      "  Epoch 14/20, Loss: 1417.240360\n",
      "  Epoch 16/20, Loss: 1201.210858\n",
      "  Epoch 16/20, Loss: 1201.210858\n",
      "  Epoch 18/20, Loss: 1039.534280\n",
      "  Epoch 18/20, Loss: 1039.534280\n",
      "  Epoch 20/20, Loss: 950.223664\n",
      "股票 603392 训练完成，最佳损失: 950.223664\n",
      "数据点数量: 1195, 模型保存至: ./../../model\\model_603392.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603501 (164/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 950.223664\n",
      "股票 603392 训练完成，最佳损失: 950.223664\n",
      "数据点数量: 1195, 模型保存至: ./../../model\\model_603392.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603501 (164/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 12816.576912\n",
      "  Epoch 1/20, Loss: 12816.576912\n",
      "  Epoch 2/20, Loss: 11621.481655\n",
      "  Epoch 2/20, Loss: 11621.481655\n",
      "  Epoch 4/20, Loss: 9745.049653\n",
      "  Epoch 4/20, Loss: 9745.049653\n",
      "  Epoch 6/20, Loss: 8248.274100\n",
      "  Epoch 6/20, Loss: 8248.274100\n",
      "  Epoch 8/20, Loss: 7196.852163\n",
      "  Epoch 8/20, Loss: 7196.852163\n",
      "  Epoch 10/20, Loss: 6500.775909\n",
      "  Epoch 10/20, Loss: 6500.775909\n",
      "  Epoch 12/20, Loss: 7513.479876\n",
      "  Epoch 12/20, Loss: 7513.479876\n",
      "  Epoch 14/20, Loss: 6609.705254\n",
      "  Epoch 14/20, Loss: 6609.705254\n",
      "  Epoch 16/20, Loss: 6216.511478\n",
      "  Epoch 16/20, Loss: 6216.511478\n",
      "  Epoch 18/20, Loss: 5673.256256\n",
      "  Epoch 18/20, Loss: 5673.256256\n",
      "  Epoch 20/20, Loss: 5055.919470\n",
      "股票 603501 训练完成，最佳损失: 5055.919470\n",
      "数据点数量: 1753, 模型保存至: ./../../model\\model_603501.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603659 (165/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 5055.919470\n",
      "股票 603501 训练完成，最佳损失: 5055.919470\n",
      "数据点数量: 1753, 模型保存至: ./../../model\\model_603501.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603659 (165/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 461.253600\n",
      "  Epoch 1/20, Loss: 461.253600\n",
      "  Epoch 2/20, Loss: 313.065892\n",
      "  Epoch 2/20, Loss: 313.065892\n",
      "  Epoch 4/20, Loss: 230.076578\n",
      "  Epoch 4/20, Loss: 230.076578\n",
      "  Epoch 6/20, Loss: 216.186375\n",
      "  Epoch 6/20, Loss: 216.186375\n",
      "  Epoch 8/20, Loss: 214.148166\n",
      "  Epoch 8/20, Loss: 214.148166\n",
      "  Epoch 10/20, Loss: 214.762781\n",
      "  Epoch 10/20, Loss: 214.762781\n",
      "  Epoch 12/20, Loss: 216.005337\n",
      "  Epoch 12/20, Loss: 216.005337\n",
      "  Epoch 14/20, Loss: 217.916607\n",
      "  Epoch 14/20, Loss: 217.916607\n",
      "  Epoch 16/20, Loss: 215.931616\n",
      "  Epoch 16/20, Loss: 215.931616\n",
      "  Epoch 18/20, Loss: 215.959435\n",
      "  Epoch 18/20, Loss: 215.959435\n",
      "  Epoch 20/20, Loss: 216.695925\n",
      "股票 603659 训练完成，最佳损失: 214.148166\n",
      "数据点数量: 1744, 模型保存至: ./../../model\\model_603659.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603799 (166/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 216.695925\n",
      "股票 603659 训练完成，最佳损失: 214.148166\n",
      "数据点数量: 1744, 模型保存至: ./../../model\\model_603659.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603799 (166/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1148.819352\n",
      "  Epoch 1/20, Loss: 1148.819352\n",
      "  Epoch 2/20, Loss: 860.627007\n",
      "  Epoch 2/20, Loss: 860.627007\n",
      "  Epoch 4/20, Loss: 647.777291\n",
      "  Epoch 4/20, Loss: 647.777291\n",
      "  Epoch 6/20, Loss: 597.890235\n",
      "  Epoch 6/20, Loss: 597.890235\n",
      "  Epoch 8/20, Loss: 591.381375\n",
      "  Epoch 8/20, Loss: 591.381375\n",
      "  Epoch 10/20, Loss: 589.574260\n",
      "  Epoch 10/20, Loss: 589.574260\n",
      "  Epoch 12/20, Loss: 589.499132\n",
      "  Epoch 12/20, Loss: 589.499132\n",
      "  Epoch 14/20, Loss: 590.984202\n",
      "  Epoch 14/20, Loss: 590.984202\n",
      "  Epoch 16/20, Loss: 593.130506\n",
      "  Epoch 16/20, Loss: 593.130506\n",
      "  Epoch 18/20, Loss: 593.875702\n",
      "  Epoch 18/20, Loss: 593.875702\n",
      "  Epoch 20/20, Loss: 612.511364\n",
      "股票 603799 训练完成，最佳损失: 588.864162\n",
      "数据点数量: 2388, 模型保存至: ./../../model\\model_603799.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603806 (167/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 612.511364\n",
      "股票 603799 训练完成，最佳损失: 588.864162\n",
      "数据点数量: 2388, 模型保存至: ./../../model\\model_603799.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603806 (167/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 239.239485\n",
      "  Epoch 1/20, Loss: 239.239485\n",
      "  Epoch 2/20, Loss: 216.464232\n",
      "  Epoch 2/20, Loss: 216.464232\n",
      "  Epoch 4/20, Loss: 187.007163\n",
      "  Epoch 4/20, Loss: 187.007163\n",
      "  Epoch 6/20, Loss: 134.221950\n",
      "  Epoch 6/20, Loss: 134.221950\n",
      "  Epoch 8/20, Loss: 113.101174\n",
      "  Epoch 8/20, Loss: 113.101174\n",
      "  Epoch 10/20, Loss: 120.404459\n",
      "  Epoch 10/20, Loss: 120.404459\n",
      "  Epoch 12/20, Loss: 93.331942\n",
      "  Epoch 12/20, Loss: 93.331942\n",
      "  Epoch 14/20, Loss: 99.529643\n",
      "  Epoch 14/20, Loss: 99.529643\n",
      "  Epoch 16/20, Loss: 83.281608\n",
      "  Epoch 16/20, Loss: 83.281608\n",
      "  Epoch 18/20, Loss: 70.133990\n",
      "  Epoch 18/20, Loss: 70.133990\n",
      "  Epoch 20/20, Loss: 65.898756\n",
      "股票 603806 训练完成，最佳损失: 65.898756\n",
      "数据点数量: 2403, 模型保存至: ./../../model\\model_603806.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603833 (168/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 65.898756\n",
      "股票 603806 训练完成，最佳损失: 65.898756\n",
      "数据点数量: 2403, 模型保存至: ./../../model\\model_603806.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603833 (168/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6981.751233\n",
      "  Epoch 1/20, Loss: 6981.751233\n",
      "  Epoch 2/20, Loss: 5805.796389\n",
      "  Epoch 2/20, Loss: 5805.796389\n",
      "  Epoch 4/20, Loss: 4159.098048\n",
      "  Epoch 4/20, Loss: 4159.098048\n",
      "  Epoch 6/20, Loss: 2997.872835\n",
      "  Epoch 6/20, Loss: 2997.872835\n",
      "  Epoch 8/20, Loss: 2191.222719\n",
      "  Epoch 8/20, Loss: 2191.222719\n",
      "  Epoch 10/20, Loss: 1657.669356\n",
      "  Epoch 10/20, Loss: 1657.669356\n",
      "  Epoch 12/20, Loss: 1320.747199\n",
      "  Epoch 12/20, Loss: 1320.747199\n",
      "  Epoch 14/20, Loss: 1122.705354\n",
      "  Epoch 14/20, Loss: 1122.705354\n",
      "  Epoch 16/20, Loss: 994.873150\n",
      "  Epoch 16/20, Loss: 994.873150\n",
      "  Epoch 18/20, Loss: 933.001980\n",
      "  Epoch 18/20, Loss: 933.001980\n",
      "  Epoch 20/20, Loss: 886.930367\n",
      "股票 603833 训练完成，最佳损失: 886.930367\n",
      "数据点数量: 1942, 模型保存至: ./../../model\\model_603833.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603986 (169/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 886.930367\n",
      "股票 603833 训练完成，最佳损失: 886.930367\n",
      "数据点数量: 1942, 模型保存至: ./../../model\\model_603833.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603986 (169/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 9632.377987\n",
      "  Epoch 1/20, Loss: 9632.377987\n",
      "  Epoch 2/20, Loss: 8422.327651\n",
      "  Epoch 2/20, Loss: 8422.327651\n",
      "  Epoch 4/20, Loss: 6566.340819\n",
      "  Epoch 4/20, Loss: 6566.340819\n",
      "  Epoch 6/20, Loss: 5172.506798\n",
      "  Epoch 6/20, Loss: 5172.506798\n",
      "  Epoch 8/20, Loss: 4158.046104\n",
      "  Epoch 8/20, Loss: 4158.046104\n",
      "  Epoch 10/20, Loss: 3425.310061\n",
      "  Epoch 10/20, Loss: 3425.310061\n",
      "  Epoch 12/20, Loss: 2896.410618\n",
      "  Epoch 12/20, Loss: 2896.410618\n",
      "  Epoch 14/20, Loss: 2567.795136\n",
      "  Epoch 14/20, Loss: 2567.795136\n",
      "  Epoch 16/20, Loss: 3210.875127\n",
      "  Epoch 16/20, Loss: 3210.875127\n",
      "  Epoch 18/20, Loss: 3546.550328\n",
      "  Epoch 18/20, Loss: 3546.550328\n",
      "  Epoch 20/20, Loss: 3454.027526\n",
      "股票 603986 训练完成，最佳损失: 2466.706202\n",
      "数据点数量: 1887, 模型保存至: ./../../model\\model_603986.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603993 (170/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 3454.027526\n",
      "股票 603986 训练完成，最佳损失: 2466.706202\n",
      "数据点数量: 1887, 模型保存至: ./../../model\\model_603986.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 603993 (170/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4.357083\n",
      "  Epoch 1/20, Loss: 4.357083\n",
      "  Epoch 2/20, Loss: 1.075125\n",
      "  Epoch 2/20, Loss: 1.075125\n",
      "  Epoch 4/20, Loss: 0.363658\n",
      "  Epoch 4/20, Loss: 0.363658\n",
      "  Epoch 6/20, Loss: 0.216513\n",
      "  Epoch 6/20, Loss: 0.216513\n",
      "  Epoch 8/20, Loss: 0.225119\n",
      "  Epoch 8/20, Loss: 0.225119\n",
      "  Epoch 10/20, Loss: 0.323403\n",
      "  Epoch 10/20, Loss: 0.323403\n",
      "  Epoch 12/20, Loss: 0.170649\n",
      "  Epoch 12/20, Loss: 0.170649\n",
      "  Epoch 14/20, Loss: 0.239576\n",
      "  Epoch 14/20, Loss: 0.239576\n",
      "  Epoch 16/20, Loss: 0.187135\n",
      "  Epoch 16/20, Loss: 0.187135\n",
      "  Epoch 18/20, Loss: 0.250402\n",
      "  Epoch 18/20, Loss: 0.250402\n",
      "  Epoch 20/20, Loss: 0.487188\n",
      "股票 603993 训练完成，最佳损失: 0.148396\n",
      "数据点数量: 2403, 模型保存至: ./../../model\\model_603993.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 605117 (171/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.487188\n",
      "股票 603993 训练完成，最佳损失: 0.148396\n",
      "数据点数量: 2403, 模型保存至: ./../../model\\model_603993.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 605117 (171/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6731.211141\n",
      "  Epoch 1/20, Loss: 6731.211141\n",
      "  Epoch 2/20, Loss: 6060.403471\n",
      "  Epoch 2/20, Loss: 6060.403471\n",
      "  Epoch 4/20, Loss: 5167.654480\n",
      "  Epoch 4/20, Loss: 5167.654480\n",
      "  Epoch 6/20, Loss: 4419.492236\n",
      "  Epoch 6/20, Loss: 4419.492236\n",
      "  Epoch 8/20, Loss: 3774.676630\n",
      "  Epoch 8/20, Loss: 3774.676630\n",
      "  Epoch 10/20, Loss: 3244.789076\n",
      "  Epoch 10/20, Loss: 3244.789076\n",
      "  Epoch 12/20, Loss: 2820.885315\n",
      "  Epoch 12/20, Loss: 2820.885315\n",
      "  Epoch 14/20, Loss: 2452.349648\n",
      "  Epoch 14/20, Loss: 2452.349648\n",
      "  Epoch 16/20, Loss: 2145.040034\n",
      "  Epoch 16/20, Loss: 2145.040034\n",
      "  Epoch 18/20, Loss: 2038.137135\n",
      "  Epoch 18/20, Loss: 2038.137135\n",
      "  Epoch 20/20, Loss: 1839.331711\n",
      "股票 605117 训练完成，最佳损失: 1839.331711\n",
      "数据点数量: 959, 模型保存至: ./../../model\\model_605117.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 605499 (172/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1839.331711\n",
      "股票 605117 训练完成，最佳损失: 1839.331711\n",
      "数据点数量: 959, 模型保存至: ./../../model\\model_605117.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 605499 (172/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 21999.132227\n",
      "  Epoch 2/20, Loss: 20655.434863\n",
      "  Epoch 1/20, Loss: 21999.132227\n",
      "  Epoch 2/20, Loss: 20655.434863\n",
      "  Epoch 4/20, Loss: 18855.153418\n",
      "  Epoch 4/20, Loss: 18855.153418\n",
      "  Epoch 6/20, Loss: 17217.947656\n",
      "  Epoch 6/20, Loss: 17217.947656\n",
      "  Epoch 8/20, Loss: 15704.265007\n",
      "  Epoch 8/20, Loss: 15704.265007\n",
      "  Epoch 10/20, Loss: 14305.093490\n",
      "  Epoch 10/20, Loss: 14305.093490\n",
      "  Epoch 12/20, Loss: 13008.864323\n",
      "  Epoch 12/20, Loss: 13008.864323\n",
      "  Epoch 14/20, Loss: 11834.351872\n",
      "  Epoch 14/20, Loss: 11834.351872\n",
      "  Epoch 16/20, Loss: 10756.817041\n",
      "  Epoch 16/20, Loss: 10756.817041\n",
      "  Epoch 18/20, Loss: 9781.993140\n",
      "  Epoch 18/20, Loss: 9781.993140\n",
      "  Epoch 20/20, Loss: 8910.496745\n",
      "股票 605499 训练完成，最佳损失: 8910.496745\n",
      "数据点数量: 935, 模型保存至: ./../../model\\model_605499.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688008 (173/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 8910.496745\n",
      "股票 605499 训练完成，最佳损失: 8910.496745\n",
      "数据点数量: 935, 模型保存至: ./../../model\\model_605499.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688008 (173/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3718.285550\n",
      "  Epoch 1/20, Loss: 3718.285550\n",
      "  Epoch 2/20, Loss: 2965.957275\n",
      "  Epoch 2/20, Loss: 2965.957275\n",
      "  Epoch 4/20, Loss: 2023.828794\n",
      "  Epoch 4/20, Loss: 2023.828794\n",
      "  Epoch 6/20, Loss: 1364.091853\n",
      "  Epoch 6/20, Loss: 1364.091853\n",
      "  Epoch 8/20, Loss: 915.185149\n",
      "  Epoch 8/20, Loss: 915.185149\n",
      "  Epoch 10/20, Loss: 618.117930\n",
      "  Epoch 10/20, Loss: 618.117930\n",
      "  Epoch 12/20, Loss: 428.151415\n",
      "  Epoch 12/20, Loss: 428.151415\n",
      "  Epoch 14/20, Loss: 319.648379\n",
      "  Epoch 14/20, Loss: 319.648379\n",
      "  Epoch 16/20, Loss: 257.679007\n",
      "  Epoch 16/20, Loss: 257.679007\n",
      "  Epoch 18/20, Loss: 219.377028\n",
      "  Epoch 18/20, Loss: 219.377028\n",
      "  Epoch 20/20, Loss: 203.627315\n",
      "股票 688008 训练完成，最佳损失: 203.627315\n",
      "数据点数量: 1383, 模型保存至: ./../../model\\model_688008.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688009 (174/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 203.627315\n",
      "股票 688008 训练完成，最佳损失: 203.627315\n",
      "数据点数量: 1383, 模型保存至: ./../../model\\model_688008.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688009 (174/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 8.379677\n",
      "  Epoch 1/20, Loss: 8.379677\n",
      "  Epoch 2/20, Loss: 0.699355\n",
      "  Epoch 2/20, Loss: 0.699355\n",
      "  Epoch 4/20, Loss: 0.483339\n",
      "  Epoch 4/20, Loss: 0.483339\n",
      "  Epoch 6/20, Loss: 0.385371\n",
      "  Epoch 6/20, Loss: 0.385371\n",
      "  Epoch 8/20, Loss: 0.260352\n",
      "  Epoch 8/20, Loss: 0.260352\n",
      "  Epoch 10/20, Loss: 0.309206\n",
      "  Epoch 10/20, Loss: 0.309206\n",
      "  Epoch 12/20, Loss: 0.421168\n",
      "  Epoch 12/20, Loss: 0.421168\n",
      "  Epoch 14/20, Loss: 0.314305\n",
      "  Epoch 14/20, Loss: 0.314305\n",
      "  Epoch 16/20, Loss: 0.205575\n",
      "  Epoch 16/20, Loss: 0.205575\n",
      "  Epoch 18/20, Loss: 0.237191\n",
      "  Epoch 18/20, Loss: 0.237191\n",
      "  Epoch 20/20, Loss: 0.148021\n",
      "股票 688009 训练完成，最佳损失: 0.148021\n",
      "数据点数量: 1383, 模型保存至: ./../../model\\model_688009.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688012 (175/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.148021\n",
      "股票 688009 训练完成，最佳损失: 0.148021\n",
      "数据点数量: 1383, 模型保存至: ./../../model\\model_688009.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688012 (175/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 20462.994518\n",
      "  Epoch 1/20, Loss: 20462.994518\n",
      "  Epoch 2/20, Loss: 18764.143266\n",
      "  Epoch 2/20, Loss: 18764.143266\n",
      "  Epoch 4/20, Loss: 16166.798429\n",
      "  Epoch 4/20, Loss: 16166.798429\n",
      "  Epoch 6/20, Loss: 13917.744462\n",
      "  Epoch 6/20, Loss: 13917.744462\n",
      "  Epoch 8/20, Loss: 11956.414173\n",
      "  Epoch 8/20, Loss: 11956.414173\n",
      "  Epoch 10/20, Loss: 10245.952456\n",
      "  Epoch 10/20, Loss: 10245.952456\n",
      "  Epoch 12/20, Loss: 8765.436270\n",
      "  Epoch 12/20, Loss: 8765.436270\n",
      "  Epoch 14/20, Loss: 7506.832686\n",
      "  Epoch 14/20, Loss: 7506.832686\n",
      "  Epoch 16/20, Loss: 6451.472909\n",
      "  Epoch 16/20, Loss: 6451.472909\n",
      "  Epoch 18/20, Loss: 5533.309513\n",
      "  Epoch 18/20, Loss: 5533.309513\n",
      "  Epoch 20/20, Loss: 4734.183879\n",
      "股票 688012 训练完成，最佳损失: 4734.183879\n",
      "数据点数量: 1383, 模型保存至: ./../../model\\model_688012.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688036 (176/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 4734.183879\n",
      "股票 688012 训练完成，最佳损失: 4734.183879\n",
      "数据点数量: 1383, 模型保存至: ./../../model\\model_688012.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688036 (176/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 5532.423163\n",
      "  Epoch 1/20, Loss: 5532.423163\n",
      "  Epoch 2/20, Loss: 4779.840728\n",
      "  Epoch 2/20, Loss: 4779.840728\n",
      "  Epoch 4/20, Loss: 3734.340110\n",
      "  Epoch 4/20, Loss: 3734.340110\n",
      "  Epoch 6/20, Loss: 2934.798384\n",
      "  Epoch 6/20, Loss: 2934.798384\n",
      "  Epoch 8/20, Loss: 2333.814473\n",
      "  Epoch 8/20, Loss: 2333.814473\n",
      "  Epoch 10/20, Loss: 1890.687226\n",
      "  Epoch 10/20, Loss: 1890.687226\n",
      "  Epoch 12/20, Loss: 1566.780107\n",
      "  Epoch 12/20, Loss: 1566.780107\n",
      "  Epoch 14/20, Loss: 1345.965476\n",
      "  Epoch 14/20, Loss: 1345.965476\n",
      "  Epoch 16/20, Loss: 1193.522349\n",
      "  Epoch 16/20, Loss: 1193.522349\n",
      "  Epoch 18/20, Loss: 935.370378\n",
      "  Epoch 18/20, Loss: 935.370378\n",
      "  Epoch 20/20, Loss: 1006.603483\n",
      "股票 688036 训练完成，最佳损失: 917.858104\n",
      "数据点数量: 1334, 模型保存至: ./../../model\\model_688036.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688041 (177/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6553.637915\n",
      "  Epoch 20/20, Loss: 1006.603483\n",
      "股票 688036 训练完成，最佳损失: 917.858104\n",
      "数据点数量: 1334, 模型保存至: ./../../model\\model_688036.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688041 (177/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6553.637915\n",
      "  Epoch 2/20, Loss: 5928.731470\n",
      "  Epoch 2/20, Loss: 5928.731470\n",
      "  Epoch 4/20, Loss: 5316.120898\n",
      "  Epoch 4/20, Loss: 5316.120898\n",
      "  Epoch 6/20, Loss: 4761.387451\n",
      "  Epoch 6/20, Loss: 4761.387451\n",
      "  Epoch 8/20, Loss: 4274.576080\n",
      "  Epoch 8/20, Loss: 4274.576080\n",
      "  Epoch 10/20, Loss: 3841.977896\n",
      "  Epoch 10/20, Loss: 3841.977896\n",
      "  Epoch 12/20, Loss: 3452.154593\n",
      "  Epoch 12/20, Loss: 3452.154593\n",
      "  Epoch 14/20, Loss: 3122.649217\n",
      "  Epoch 14/20, Loss: 3122.649217\n",
      "  Epoch 16/20, Loss: 2827.759541\n",
      "  Epoch 16/20, Loss: 2827.759541\n",
      "  Epoch 18/20, Loss: 2583.659444\n",
      "  Epoch 18/20, Loss: 2583.659444\n",
      "  Epoch 20/20, Loss: 2331.413383\n",
      "股票 688041 训练完成，最佳损失: 2331.413383\n",
      "数据点数量: 639, 模型保存至: ./../../model\\model_688041.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688082 (178/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 8688.099609\n",
      "  Epoch 20/20, Loss: 2331.413383\n",
      "股票 688041 训练完成，最佳损失: 2331.413383\n",
      "数据点数量: 639, 模型保存至: ./../../model\\model_688041.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688082 (178/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 8688.099609\n",
      "  Epoch 2/20, Loss: 7811.588492\n",
      "  Epoch 2/20, Loss: 7811.588492\n",
      "  Epoch 4/20, Loss: 6749.891188\n",
      "  Epoch 4/20, Loss: 6749.891188\n",
      "  Epoch 6/20, Loss: 5807.477088\n",
      "  Epoch 6/20, Loss: 5807.477088\n",
      "  Epoch 8/20, Loss: 4997.707876\n",
      "  Epoch 8/20, Loss: 4997.707876\n",
      "  Epoch 10/20, Loss: 4279.319317\n",
      "  Epoch 10/20, Loss: 4279.319317\n",
      "  Epoch 12/20, Loss: 3643.665837\n",
      "  Epoch 12/20, Loss: 3643.665837\n",
      "  Epoch 14/20, Loss: 3096.968722\n",
      "  Epoch 14/20, Loss: 3096.968722\n",
      "  Epoch 16/20, Loss: 2611.400926\n",
      "  Epoch 16/20, Loss: 2611.400926\n",
      "  Epoch 18/20, Loss: 2205.298063\n",
      "  Epoch 18/20, Loss: 2205.298063\n",
      "  Epoch 20/20, Loss: 1862.910091\n",
      "股票 688082 训练完成，最佳损失: 1862.910091\n",
      "数据点数量: 818, 模型保存至: ./../../model\\model_688082.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688111 (179/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 1862.910091\n",
      "股票 688082 训练完成，最佳损失: 1862.910091\n",
      "数据点数量: 818, 模型保存至: ./../../model\\model_688082.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688111 (179/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 85732.402716\n",
      "  Epoch 1/20, Loss: 85732.402716\n",
      "  Epoch 2/20, Loss: 82781.345424\n",
      "  Epoch 2/20, Loss: 82781.345424\n",
      "  Epoch 4/20, Loss: 77970.913876\n",
      "  Epoch 4/20, Loss: 77970.913876\n",
      "  Epoch 6/20, Loss: 73480.212333\n",
      "  Epoch 6/20, Loss: 73480.212333\n",
      "  Epoch 8/20, Loss: 69170.784970\n",
      "  Epoch 8/20, Loss: 69170.784970\n",
      "  Epoch 10/20, Loss: 65120.463635\n",
      "  Epoch 10/20, Loss: 65120.463635\n",
      "  Epoch 12/20, Loss: 61256.233724\n",
      "  Epoch 12/20, Loss: 61256.233724\n",
      "  Epoch 14/20, Loss: 57620.725911\n",
      "  Epoch 14/20, Loss: 57620.725911\n",
      "  Epoch 16/20, Loss: 54101.169782\n",
      "  Epoch 16/20, Loss: 54101.169782\n",
      "  Epoch 18/20, Loss: 50959.583147\n",
      "  Epoch 18/20, Loss: 50959.583147\n",
      "  Epoch 20/20, Loss: 47696.965123\n",
      "股票 688111 训练完成，最佳损失: 47696.965123\n",
      "数据点数量: 1304, 模型保存至: ./../../model\\model_688111.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688126 (180/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 47696.965123\n",
      "股票 688111 训练完成，最佳损失: 47696.965123\n",
      "数据点数量: 1304, 模型保存至: ./../../model\\model_688111.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688126 (180/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 386.757048\n",
      "  Epoch 1/20, Loss: 386.757048\n",
      "  Epoch 2/20, Loss: 187.040162\n",
      "  Epoch 2/20, Loss: 187.040162\n",
      "  Epoch 4/20, Loss: 84.782223\n",
      "  Epoch 4/20, Loss: 84.782223\n",
      "  Epoch 6/20, Loss: 63.511073\n",
      "  Epoch 6/20, Loss: 63.511073\n",
      "  Epoch 8/20, Loss: 60.331458\n",
      "  Epoch 8/20, Loss: 60.331458\n",
      "  Epoch 10/20, Loss: 58.370779\n",
      "  Epoch 10/20, Loss: 58.370779\n",
      "  Epoch 12/20, Loss: 58.546525\n",
      "  Epoch 12/20, Loss: 58.546525\n",
      "  Epoch 14/20, Loss: 59.596233\n",
      "  Epoch 14/20, Loss: 59.596233\n",
      "  Epoch 16/20, Loss: 59.264139\n",
      "  Epoch 16/20, Loss: 59.264139\n",
      "  Epoch 18/20, Loss: 59.277620\n",
      "  Epoch 18/20, Loss: 59.277620\n",
      "  Epoch 20/20, Loss: 59.432970\n",
      "股票 688126 训练完成，最佳损失: 58.370779\n",
      "数据点数量: 1192, 模型保存至: ./../../model\\model_688126.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688169 (181/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 59.432970\n",
      "股票 688126 训练完成，最佳损失: 58.370779\n",
      "数据点数量: 1192, 模型保存至: ./../../model\\model_688126.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688169 (181/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 59907.670264\n",
      "  Epoch 1/20, Loss: 59907.670264\n",
      "  Epoch 2/20, Loss: 57416.984326\n",
      "  Epoch 2/20, Loss: 57416.984326\n",
      "  Epoch 4/20, Loss: 53629.685254\n",
      "  Epoch 4/20, Loss: 53629.685254\n",
      "  Epoch 6/20, Loss: 50092.152832\n",
      "  Epoch 6/20, Loss: 50092.152832\n",
      "  Epoch 8/20, Loss: 46829.621582\n",
      "  Epoch 8/20, Loss: 46829.621582\n",
      "  Epoch 10/20, Loss: 43715.069971\n",
      "  Epoch 10/20, Loss: 43715.069971\n",
      "  Epoch 12/20, Loss: 40797.055957\n",
      "  Epoch 12/20, Loss: 40797.055957\n",
      "  Epoch 14/20, Loss: 38084.451245\n",
      "  Epoch 14/20, Loss: 38084.451245\n",
      "  Epoch 16/20, Loss: 35483.956140\n",
      "  Epoch 16/20, Loss: 35483.956140\n",
      "  Epoch 18/20, Loss: 33119.161682\n",
      "  Epoch 18/20, Loss: 33119.161682\n",
      "  Epoch 20/20, Loss: 30842.730872\n",
      "股票 688169 训练完成，最佳损失: 30842.730872\n",
      "数据点数量: 1242, 模型保存至: ./../../model\\model_688169.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688187 (182/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2035.557578\n",
      "  Epoch 20/20, Loss: 30842.730872\n",
      "股票 688169 训练完成，最佳损失: 30842.730872\n",
      "数据点数量: 1242, 模型保存至: ./../../model\\model_688169.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688187 (182/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2035.557578\n",
      "  Epoch 2/20, Loss: 1537.765067\n",
      "  Epoch 2/20, Loss: 1537.765067\n",
      "  Epoch 4/20, Loss: 1069.166643\n",
      "  Epoch 4/20, Loss: 1069.166643\n",
      "  Epoch 6/20, Loss: 733.370011\n",
      "  Epoch 6/20, Loss: 733.370011\n",
      "  Epoch 8/20, Loss: 497.899124\n",
      "  Epoch 8/20, Loss: 497.899124\n",
      "  Epoch 10/20, Loss: 342.029403\n",
      "  Epoch 10/20, Loss: 342.029403\n",
      "  Epoch 12/20, Loss: 240.996800\n",
      "  Epoch 12/20, Loss: 240.996800\n",
      "  Epoch 14/20, Loss: 175.726276\n",
      "  Epoch 14/20, Loss: 175.726276\n",
      "  Epoch 16/20, Loss: 141.281429\n",
      "  Epoch 16/20, Loss: 141.281429\n",
      "  Epoch 18/20, Loss: 121.772612\n",
      "  Epoch 18/20, Loss: 121.772612\n",
      "  Epoch 20/20, Loss: 111.766783\n",
      "股票 688187 训练完成，最佳损失: 111.766783\n",
      "数据点数量: 863, 模型保存至: ./../../model\\model_688187.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688223 (183/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 72.048864\n",
      "  Epoch 20/20, Loss: 111.766783\n",
      "股票 688187 训练完成，最佳损失: 111.766783\n",
      "数据点数量: 863, 模型保存至: ./../../model\\model_688187.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688223 (183/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 72.048864\n",
      "  Epoch 2/20, Loss: 15.805355\n",
      "  Epoch 2/20, Loss: 15.805355\n",
      "  Epoch 4/20, Loss: 11.833061\n",
      "  Epoch 4/20, Loss: 11.833061\n",
      "  Epoch 6/20, Loss: 7.939526\n",
      "  Epoch 6/20, Loss: 7.939526\n",
      "  Epoch 8/20, Loss: 4.447018\n",
      "  Epoch 8/20, Loss: 4.447018\n",
      "  Epoch 10/20, Loss: 2.860034\n",
      "  Epoch 10/20, Loss: 2.860034\n",
      "  Epoch 12/20, Loss: 1.806984\n",
      "  Epoch 12/20, Loss: 1.806984\n",
      "  Epoch 14/20, Loss: 1.017777\n",
      "  Epoch 14/20, Loss: 1.017777\n",
      "  Epoch 16/20, Loss: 0.835687\n",
      "  Epoch 16/20, Loss: 0.835687\n",
      "  Epoch 18/20, Loss: 0.751594\n",
      "  Epoch 18/20, Loss: 0.751594\n",
      "  Epoch 20/20, Loss: 0.832364\n",
      "股票 688223 训练完成，最佳损失: 0.751594\n",
      "数据点数量: 770, 模型保存至: ./../../model\\model_688223.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688256 (184/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 0.832364\n",
      "股票 688223 训练完成，最佳损失: 0.751594\n",
      "数据点数量: 770, 模型保存至: ./../../model\\model_688223.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688256 (184/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 60256.459730\n",
      "  Epoch 1/20, Loss: 60256.459730\n",
      "  Epoch 2/20, Loss: 58704.679036\n",
      "  Epoch 2/20, Loss: 58704.679036\n",
      "  Epoch 4/20, Loss: 56557.754489\n",
      "  Epoch 4/20, Loss: 56557.754489\n",
      "  Epoch 6/20, Loss: 54580.099046\n",
      "  Epoch 6/20, Loss: 54580.099046\n",
      "  Epoch 8/20, Loss: 52735.766602\n",
      "  Epoch 8/20, Loss: 52735.766602\n",
      "  Epoch 10/20, Loss: 51013.052528\n",
      "  Epoch 10/20, Loss: 51013.052528\n",
      "  Epoch 12/20, Loss: 49424.131263\n",
      "  Epoch 12/20, Loss: 49424.131263\n",
      "  Epoch 14/20, Loss: 47918.544364\n",
      "  Epoch 14/20, Loss: 47918.544364\n",
      "  Epoch 16/20, Loss: 46533.719423\n",
      "  Epoch 16/20, Loss: 46533.719423\n",
      "  Epoch 18/20, Loss: 45159.908031\n",
      "  Epoch 18/20, Loss: 45159.908031\n",
      "  Epoch 20/20, Loss: 43987.820564\n",
      "股票 688256 训练完成，最佳损失: 43987.820564\n",
      "数据点数量: 1142, 模型保存至: ./../../model\\model_688256.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688271 (185/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 18538.639648\n",
      "  Epoch 20/20, Loss: 43987.820564\n",
      "股票 688256 训练完成，最佳损失: 43987.820564\n",
      "数据点数量: 1142, 模型保存至: ./../../model\\model_688256.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688271 (185/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 18538.639648\n",
      "  Epoch 2/20, Loss: 17319.456934\n",
      "  Epoch 2/20, Loss: 17319.456934\n",
      "  Epoch 4/20, Loss: 16125.504102\n",
      "  Epoch 4/20, Loss: 16125.504102\n",
      "  Epoch 6/20, Loss: 15018.084180\n",
      "  Epoch 6/20, Loss: 15018.084180\n",
      "  Epoch 8/20, Loss: 14004.965039\n",
      "  Epoch 8/20, Loss: 14004.965039\n",
      "  Epoch 10/20, Loss: 13035.397803\n",
      "  Epoch 10/20, Loss: 13035.397803\n",
      "  Epoch 12/20, Loss: 12124.985303\n",
      "  Epoch 12/20, Loss: 12124.985303\n",
      "  Epoch 14/20, Loss: 11292.935352\n",
      "  Epoch 14/20, Loss: 11292.935352\n",
      "  Epoch 16/20, Loss: 10487.355420\n",
      "  Epoch 16/20, Loss: 10487.355420\n",
      "  Epoch 18/20, Loss: 9751.335059\n",
      "  Epoch 18/20, Loss: 9751.335059\n",
      "  Epoch 20/20, Loss: 9048.445850\n",
      "股票 688271 训练完成，最佳损失: 9048.445850\n",
      "数据点数量: 633, 模型保存至: ./../../model\\model_688271.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688303 (186/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1505.565822\n",
      "  Epoch 20/20, Loss: 9048.445850\n",
      "股票 688271 训练完成，最佳损失: 9048.445850\n",
      "数据点数量: 633, 模型保存至: ./../../model\\model_688271.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688303 (186/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1505.565822\n",
      "  Epoch 2/20, Loss: 1074.283348\n",
      "  Epoch 2/20, Loss: 1074.283348\n",
      "  Epoch 4/20, Loss: 754.719786\n",
      "  Epoch 4/20, Loss: 754.719786\n",
      "  Epoch 6/20, Loss: 546.433842\n",
      "  Epoch 6/20, Loss: 546.433842\n",
      "  Epoch 8/20, Loss: 415.751995\n",
      "  Epoch 8/20, Loss: 415.751995\n",
      "  Epoch 10/20, Loss: 337.852204\n",
      "  Epoch 10/20, Loss: 337.852204\n",
      "  Epoch 12/20, Loss: 293.214004\n",
      "  Epoch 12/20, Loss: 293.214004\n",
      "  Epoch 14/20, Loss: 269.358588\n",
      "  Epoch 14/20, Loss: 269.358588\n",
      "  Epoch 16/20, Loss: 252.295063\n",
      "  Epoch 16/20, Loss: 252.295063\n",
      "  Epoch 18/20, Loss: 246.860066\n",
      "  Epoch 18/20, Loss: 246.860066\n",
      "  Epoch 20/20, Loss: 243.498441\n",
      "股票 688303 训练完成，最佳损失: 243.498441\n",
      "数据点数量: 896, 模型保存至: ./../../model\\model_688303.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688396 (187/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 243.498441\n",
      "股票 688303 训练完成，最佳损失: 243.498441\n",
      "数据点数量: 896, 模型保存至: ./../../model\\model_688303.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688396 (187/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2177.499213\n",
      "  Epoch 1/20, Loss: 2177.499213\n",
      "  Epoch 2/20, Loss: 1651.286893\n",
      "  Epoch 2/20, Loss: 1651.286893\n",
      "  Epoch 4/20, Loss: 1040.188525\n",
      "  Epoch 4/20, Loss: 1040.188525\n",
      "  Epoch 6/20, Loss: 647.292905\n",
      "  Epoch 6/20, Loss: 647.292905\n",
      "  Epoch 8/20, Loss: 408.922056\n",
      "  Epoch 8/20, Loss: 408.922056\n",
      "  Epoch 10/20, Loss: 270.502624\n",
      "  Epoch 10/20, Loss: 270.502624\n",
      "  Epoch 12/20, Loss: 198.490449\n",
      "  Epoch 12/20, Loss: 198.490449\n",
      "  Epoch 14/20, Loss: 165.414882\n",
      "  Epoch 14/20, Loss: 165.414882\n",
      "  Epoch 16/20, Loss: 149.354504\n",
      "  Epoch 16/20, Loss: 149.354504\n",
      "  Epoch 18/20, Loss: 140.526218\n",
      "  Epoch 18/20, Loss: 140.526218\n",
      "  Epoch 20/20, Loss: 136.333614\n",
      "股票 688396 训练完成，最佳损失: 136.333614\n",
      "数据点数量: 1238, 模型保存至: ./../../model\\model_688396.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688472 (188/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 114.488854\n",
      "  Epoch 2/20, Loss: 23.678777\n",
      "  Epoch 20/20, Loss: 136.333614\n",
      "股票 688396 训练完成，最佳损失: 136.333614\n",
      "数据点数量: 1238, 模型保存至: ./../../model\\model_688396.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688472 (188/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 114.488854\n",
      "  Epoch 2/20, Loss: 23.678777\n",
      "  Epoch 4/20, Loss: 5.766376\n",
      "  Epoch 6/20, Loss: 4.833259\n",
      "  Epoch 4/20, Loss: 5.766376\n",
      "  Epoch 6/20, Loss: 4.833259\n",
      "  Epoch 8/20, Loss: 4.502908\n",
      "  Epoch 10/20, Loss: 4.425805\n",
      "  Epoch 8/20, Loss: 4.502908\n",
      "  Epoch 10/20, Loss: 4.425805\n",
      "  Epoch 12/20, Loss: 4.311260\n",
      "  Epoch 14/20, Loss: 4.318817\n",
      "  Epoch 12/20, Loss: 4.311260\n",
      "  Epoch 14/20, Loss: 4.318817\n",
      "  Epoch 16/20, Loss: 4.419774\n",
      "  Epoch 18/20, Loss: 4.390514\n",
      "  Epoch 16/20, Loss: 4.419774\n",
      "  Epoch 18/20, Loss: 4.390514\n",
      "  Epoch 20/20, Loss: 4.388628\n",
      "股票 688472 训练完成，最佳损失: 4.299867\n",
      "数据点数量: 440, 模型保存至: ./../../model\\model_688472.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688506 (189/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 22151.985080\n",
      "  Epoch 20/20, Loss: 4.388628\n",
      "股票 688472 训练完成，最佳损失: 4.299867\n",
      "数据点数量: 440, 模型保存至: ./../../model\\model_688472.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688506 (189/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 22151.985080\n",
      "  Epoch 2/20, Loss: 21119.649306\n",
      "  Epoch 2/20, Loss: 21119.649306\n",
      "  Epoch 4/20, Loss: 20046.265191\n",
      "  Epoch 4/20, Loss: 20046.265191\n",
      "  Epoch 6/20, Loss: 19043.100315\n",
      "  Epoch 8/20, Loss: 18092.508572\n",
      "  Epoch 6/20, Loss: 19043.100315\n",
      "  Epoch 8/20, Loss: 18092.508572\n",
      "  Epoch 10/20, Loss: 17184.116699\n",
      "  Epoch 12/20, Loss: 16329.818468\n",
      "  Epoch 10/20, Loss: 17184.116699\n",
      "  Epoch 12/20, Loss: 16329.818468\n",
      "  Epoch 14/20, Loss: 15539.001940\n",
      "  Epoch 14/20, Loss: 15539.001940\n",
      "  Epoch 16/20, Loss: 14780.813829\n",
      "  Epoch 16/20, Loss: 14780.813829\n",
      "  Epoch 18/20, Loss: 14026.768216\n",
      "  Epoch 20/20, Loss: 13328.996528\n",
      "股票 688506 训练完成，最佳损失: 13328.996528\n",
      "数据点数量: 541, 模型保存至: ./../../model\\model_688506.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688599 (190/300)\n",
      "==================================================\n",
      "  Epoch 18/20, Loss: 14026.768216\n",
      "  Epoch 20/20, Loss: 13328.996528\n",
      "股票 688506 训练完成，最佳损失: 13328.996528\n",
      "数据点数量: 541, 模型保存至: ./../../model\\model_688506.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688599 (190/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1290.307404\n",
      "  Epoch 1/20, Loss: 1290.307404\n",
      "  Epoch 2/20, Loss: 1026.104200\n",
      "  Epoch 2/20, Loss: 1026.104200\n",
      "  Epoch 4/20, Loss: 759.181354\n",
      "  Epoch 4/20, Loss: 759.181354\n",
      "  Epoch 6/20, Loss: 610.841221\n",
      "  Epoch 6/20, Loss: 610.841221\n",
      "  Epoch 8/20, Loss: 528.599473\n",
      "  Epoch 8/20, Loss: 528.599473\n",
      "  Epoch 10/20, Loss: 486.366572\n",
      "  Epoch 10/20, Loss: 486.366572\n",
      "  Epoch 12/20, Loss: 465.476578\n",
      "  Epoch 12/20, Loss: 465.476578\n",
      "  Epoch 14/20, Loss: 455.537450\n",
      "  Epoch 14/20, Loss: 455.537450\n",
      "  Epoch 16/20, Loss: 452.176199\n",
      "  Epoch 16/20, Loss: 452.176199\n",
      "  Epoch 18/20, Loss: 445.522605\n",
      "  Epoch 18/20, Loss: 445.522605\n",
      "  Epoch 20/20, Loss: 549.160656\n",
      "股票 688599 训练完成，最佳损失: 445.522605\n",
      "数据点数量: 1168, 模型保存至: ./../../model\\model_688599.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688981 (191/300)\n",
      "==================================================\n",
      "  Epoch 20/20, Loss: 549.160656\n",
      "股票 688599 训练完成，最佳损失: 445.522605\n",
      "数据点数量: 1168, 模型保存至: ./../../model\\model_688599.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 688981 (191/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2682.987189\n",
      "  Epoch 1/20, Loss: 2682.987189\n",
      "  Epoch 2/20, Loss: 2128.014621\n",
      "  Epoch 2/20, Loss: 2128.014621\n",
      "  Epoch 4/20, Loss: 1491.654782\n",
      "  Epoch 6/20, Loss: 1049.255444\n",
      "  Epoch 8/20, Loss: 746.410896\n",
      "  Epoch 10/20, Loss: 543.577033\n",
      "  Epoch 12/20, Loss: 420.376378\n",
      "  Epoch 14/20, Loss: 345.118945\n",
      "  Epoch 16/20, Loss: 299.222023\n",
      "  Epoch 18/20, Loss: 274.831898\n",
      "  Epoch 20/20, Loss: 264.765931\n",
      "股票 688981 训练完成，最佳损失: 264.765931\n",
      "数据点数量: 1144, 模型保存至: ./../../model\\model_688981.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 1 (192/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 18.251640\n",
      "  Epoch 2/20, Loss: 20.038924\n",
      "  Epoch 4/20, Loss: 17.848461\n",
      "  Epoch 6/20, Loss: 17.928351\n",
      "  Epoch 8/20, Loss: 17.911847\n",
      "  Epoch 10/20, Loss: 17.701761\n",
      "  Epoch 12/20, Loss: 17.762328\n",
      "  Epoch 14/20, Loss: 17.714863\n",
      "  Epoch 16/20, Loss: 18.048725\n",
      "  Epoch 18/20, Loss: 16.227901\n",
      "  Epoch 20/20, Loss: 12.158524\n",
      "股票 1 训练完成，最佳损失: 12.158524\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_1.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2 (193/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 107.632878\n",
      "  Epoch 2/20, Loss: 53.074599\n",
      "  Epoch 4/20, Loss: 49.755042\n",
      "  Epoch 6/20, Loss: 49.879484\n",
      "  Epoch 8/20, Loss: 50.088034\n",
      "  Epoch 10/20, Loss: 50.421976\n",
      "  Epoch 12/20, Loss: 49.739654\n",
      "  Epoch 14/20, Loss: 50.130726\n",
      "  Epoch 16/20, Loss: 50.328941\n",
      "  Epoch 18/20, Loss: 50.007004\n",
      "  Epoch 20/20, Loss: 50.104720\n",
      "股票 2 训练完成，最佳损失: 49.451995\n",
      "数据点数量: 2287, 模型保存至: ./../../model\\model_2.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 63 (194/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 283.006636\n",
      "  Epoch 2/20, Loss: 111.780645\n",
      "  Epoch 4/20, Loss: 72.117600\n",
      "  Epoch 6/20, Loss: 74.039727\n",
      "  Epoch 8/20, Loss: 75.986446\n",
      "  Epoch 10/20, Loss: 75.893141\n",
      "  Epoch 12/20, Loss: 76.663152\n",
      "  Epoch 14/20, Loss: 75.997594\n",
      "  Epoch 16/20, Loss: 75.912694\n",
      "  Epoch 18/20, Loss: 76.317978\n",
      "  Epoch 20/20, Loss: 76.020896\n",
      "股票 63 训练完成，最佳损失: 72.117600\n",
      "数据点数量: 2348, 模型保存至: ./../../model\\model_63.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 100 (195/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4.199724\n",
      "  Epoch 2/20, Loss: 1.418044\n",
      "  Epoch 4/20, Loss: 0.664003\n",
      "  Epoch 6/20, Loss: 0.284881\n",
      "  Epoch 8/20, Loss: 0.408705\n",
      "  Epoch 10/20, Loss: 0.389607\n",
      "  Epoch 12/20, Loss: 0.243255\n",
      "  Epoch 14/20, Loss: 0.188352\n",
      "  Epoch 16/20, Loss: 0.175967\n",
      "  Epoch 18/20, Loss: 0.172143\n",
      "  Epoch 20/20, Loss: 0.089155\n",
      "股票 100 训练完成，最佳损失: 0.089155\n",
      "数据点数量: 2256, 模型保存至: ./../../model\\model_100.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 157 (196/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4.266847\n",
      "  Epoch 2/20, Loss: 9.217091\n",
      "  Epoch 4/20, Loss: 1.209728\n",
      "  Epoch 6/20, Loss: 1.025608\n",
      "  Epoch 8/20, Loss: 0.615180\n",
      "  Epoch 10/20, Loss: 0.771623\n",
      "  Epoch 12/20, Loss: 0.608090\n",
      "  Epoch 14/20, Loss: 0.521458\n",
      "  Epoch 16/20, Loss: 0.567084\n",
      "  Epoch 18/20, Loss: 0.857118\n",
      "  Epoch 20/20, Loss: 0.884742\n",
      "股票 157 训练完成，最佳损失: 0.521458\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_157.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 166 (197/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 7.228557\n",
      "  Epoch 2/20, Loss: 1.600511\n",
      "  Epoch 4/20, Loss: 1.135447\n",
      "  Epoch 6/20, Loss: 1.076324\n",
      "  Epoch 8/20, Loss: 0.939099\n",
      "  Epoch 10/20, Loss: 0.950141\n",
      "  Epoch 12/20, Loss: 0.641367\n",
      "  Epoch 14/20, Loss: 0.586173\n",
      "  Epoch 16/20, Loss: 0.671377\n",
      "  Epoch 18/20, Loss: 0.442005\n",
      "  Epoch 20/20, Loss: 0.324582\n",
      "股票 166 训练完成，最佳损失: 0.324582\n",
      "数据点数量: 2392, 模型保存至: ./../../model\\model_166.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 301 (198/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 43.483744\n",
      "  Epoch 2/20, Loss: 40.051777\n",
      "  Epoch 4/20, Loss: 39.684611\n",
      "  Epoch 6/20, Loss: 41.584961\n",
      "  Epoch 8/20, Loss: 27.458515\n",
      "  Epoch 10/20, Loss: 19.664211\n",
      "  Epoch 12/20, Loss: 19.550879\n",
      "  Epoch 14/20, Loss: 19.059292\n",
      "  Epoch 16/20, Loss: 14.283546\n",
      "  Epoch 18/20, Loss: 11.726122\n",
      "  Epoch 20/20, Loss: 9.892767\n",
      "股票 301 训练完成，最佳损失: 9.892767\n",
      "数据点数量: 2246, 模型保存至: ./../../model\\model_301.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 333 (199/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1504.418140\n",
      "  Epoch 2/20, Loss: 1036.674484\n",
      "  Epoch 4/20, Loss: 628.334881\n",
      "  Epoch 6/20, Loss: 513.491885\n",
      "  Epoch 8/20, Loss: 488.569815\n",
      "  Epoch 10/20, Loss: 486.126484\n",
      "  Epoch 12/20, Loss: 491.109487\n",
      "  Epoch 14/20, Loss: 562.724017\n",
      "  Epoch 16/20, Loss: 1518.947722\n",
      "  Epoch 18/20, Loss: 1289.075825\n",
      "  Epoch 20/20, Loss: 1197.409580\n",
      "股票 333 训练完成，最佳损失: 486.126484\n",
      "数据点数量: 2372, 模型保存至: ./../../model\\model_333.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 338 (200/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 11.607480\n",
      "  Epoch 2/20, Loss: 41.690667\n",
      "  Epoch 4/20, Loss: 33.218784\n",
      "  Epoch 6/20, Loss: 37.176424\n",
      "  Epoch 8/20, Loss: 32.728642\n",
      "  Epoch 10/20, Loss: 31.047538\n",
      "  Epoch 12/20, Loss: 31.141943\n",
      "  Epoch 14/20, Loss: 31.121764\n",
      "  Epoch 16/20, Loss: 31.403497\n",
      "  Epoch 18/20, Loss: 31.130073\n",
      "  Epoch 20/20, Loss: 31.107712\n",
      "股票 338 训练完成，最佳损失: 11.607480\n",
      "数据点数量: 2420, 模型保存至: ./../../model\\model_338.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 408 (201/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 140.105074\n",
      "  Epoch 2/20, Loss: 100.323464\n",
      "  Epoch 4/20, Loss: 101.551036\n",
      "  Epoch 6/20, Loss: 103.106317\n",
      "  Epoch 8/20, Loss: 103.511717\n",
      "  Epoch 10/20, Loss: 122.072504\n",
      "  Epoch 12/20, Loss: 70.187402\n",
      "  Epoch 14/20, Loss: 45.663174\n",
      "  Epoch 16/20, Loss: 39.333017\n",
      "  Epoch 18/20, Loss: 32.027672\n",
      "  Epoch 20/20, Loss: 30.841369\n",
      "股票 408 训练完成，最佳损失: 29.550560\n",
      "数据点数量: 2360, 模型保存至: ./../../model\\model_408.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 425 (202/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.954766\n",
      "  Epoch 2/20, Loss: 2.752351\n",
      "  Epoch 4/20, Loss: 0.669413\n",
      "  Epoch 6/20, Loss: 0.935009\n",
      "  Epoch 8/20, Loss: 0.406705\n",
      "  Epoch 10/20, Loss: 0.368892\n",
      "  Epoch 12/20, Loss: 0.302857\n",
      "  Epoch 14/20, Loss: 0.871117\n",
      "  Epoch 16/20, Loss: 0.343263\n",
      "  Epoch 18/20, Loss: 0.192272\n",
      "  Epoch 20/20, Loss: 0.367667\n",
      "股票 425 训练完成，最佳损失: 0.192272\n",
      "数据点数量: 2382, 模型保存至: ./../../model\\model_425.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 538 (203/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1728.948154\n",
      "  Epoch 2/20, Loss: 1091.113365\n",
      "  Epoch 4/20, Loss: 452.642438\n",
      "  Epoch 6/20, Loss: 219.712815\n",
      "  Epoch 8/20, Loss: 154.340360\n",
      "  Epoch 10/20, Loss: 141.266871\n",
      "  Epoch 12/20, Loss: 139.052536\n",
      "  Epoch 14/20, Loss: 139.142407\n",
      "  Epoch 16/20, Loss: 139.977331\n",
      "  Epoch 18/20, Loss: 139.839192\n",
      "  Epoch 20/20, Loss: 140.392816\n",
      "股票 538 训练完成，最佳损失: 138.349587\n",
      "数据点数量: 2258, 模型保存至: ./../../model\\model_538.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 568 (204/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 15343.674259\n",
      "  Epoch 2/20, Loss: 14007.006721\n",
      "  Epoch 4/20, Loss: 12329.153148\n",
      "  Epoch 6/20, Loss: 12275.086503\n",
      "  Epoch 8/20, Loss: 12340.294555\n",
      "  Epoch 10/20, Loss: 11260.006230\n",
      "  Epoch 12/20, Loss: 10233.098059\n",
      "  Epoch 14/20, Loss: 9469.219849\n",
      "  Epoch 16/20, Loss: 9560.728806\n",
      "  Epoch 18/20, Loss: 9292.685731\n",
      "  Epoch 20/20, Loss: 8560.807900\n",
      "股票 568 训练完成，最佳损失: 8560.807900\n",
      "数据点数量: 2404, 模型保存至: ./../../model\\model_568.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 596 (205/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 22833.698347\n",
      "  Epoch 2/20, Loss: 20849.051553\n",
      "  Epoch 4/20, Loss: 17818.271649\n",
      "  Epoch 6/20, Loss: 15463.066112\n",
      "  Epoch 8/20, Loss: 13639.554110\n",
      "  Epoch 10/20, Loss: 12242.997658\n",
      "  Epoch 12/20, Loss: 11184.723187\n",
      "  Epoch 14/20, Loss: 10375.095546\n",
      "  Epoch 16/20, Loss: 9779.365575\n",
      "  Epoch 18/20, Loss: 9376.526555\n",
      "  Epoch 20/20, Loss: 9238.657653\n",
      "股票 596 训练完成，最佳损失: 9234.211925\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_596.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 617 (206/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 15.150218\n",
      "  Epoch 2/20, Loss: 6.383457\n",
      "  Epoch 4/20, Loss: 2.742304\n",
      "  Epoch 6/20, Loss: 2.372084\n",
      "  Epoch 8/20, Loss: 1.284981\n",
      "  Epoch 10/20, Loss: 0.584292\n",
      "  Epoch 12/20, Loss: 0.541700\n",
      "  Epoch 14/20, Loss: 0.396548\n",
      "  Epoch 16/20, Loss: 0.522570\n",
      "  Epoch 18/20, Loss: 0.292988\n",
      "  Epoch 20/20, Loss: 0.580042\n",
      "股票 617 训练完成，最佳损失: 0.292988\n",
      "数据点数量: 2313, 模型保存至: ./../../model\\model_617.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 625 (207/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 35.406530\n",
      "  Epoch 2/20, Loss: 18.716217\n",
      "  Epoch 4/20, Loss: 32.710479\n",
      "  Epoch 6/20, Loss: 13.348714\n",
      "  Epoch 8/20, Loss: 13.778552\n",
      "  Epoch 10/20, Loss: 10.461444\n",
      "  Epoch 12/20, Loss: 5.464448\n",
      "  Epoch 14/20, Loss: 3.943827\n",
      "  Epoch 16/20, Loss: 3.900110\n",
      "  Epoch 18/20, Loss: 3.691365\n",
      "  Epoch 20/20, Loss: 3.527221\n",
      "股票 625 训练完成，最佳损失: 3.527221\n",
      "数据点数量: 2399, 模型保存至: ./../../model\\model_625.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 630 (208/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.459171\n",
      "  Epoch 2/20, Loss: 0.476562\n",
      "  Epoch 4/20, Loss: 0.107407\n",
      "  Epoch 6/20, Loss: 0.045668\n",
      "  Epoch 8/20, Loss: 0.038677\n",
      "  Epoch 10/20, Loss: 0.041898\n",
      "  Epoch 12/20, Loss: 0.038359\n",
      "  Epoch 14/20, Loss: 0.041448\n",
      "  Epoch 16/20, Loss: 0.040244\n",
      "  Epoch 18/20, Loss: 0.032966\n",
      "  Epoch 20/20, Loss: 0.032321\n",
      "股票 630 训练完成，最佳损失: 0.032321\n",
      "数据点数量: 2287, 模型保存至: ./../../model\\model_630.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 651 (209/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 612.990900\n",
      "  Epoch 2/20, Loss: 352.616535\n",
      "  Epoch 4/20, Loss: 203.405885\n",
      "  Epoch 6/20, Loss: 214.045783\n",
      "  Epoch 8/20, Loss: 256.704055\n",
      "  Epoch 10/20, Loss: 263.738624\n",
      "  Epoch 12/20, Loss: 168.268143\n",
      "  Epoch 14/20, Loss: 116.966751\n",
      "  Epoch 16/20, Loss: 112.539245\n",
      "  Epoch 18/20, Loss: 76.224588\n",
      "  Epoch 20/20, Loss: 57.441385\n",
      "股票 651 训练完成，最佳损失: 57.441385\n",
      "数据点数量: 2265, 模型保存至: ./../../model\\model_651.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 661 (210/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 33993.527618\n",
      "  Epoch 2/20, Loss: 31856.424663\n",
      "  Epoch 4/20, Loss: 28363.369844\n",
      "  Epoch 6/20, Loss: 25479.622082\n",
      "  Epoch 8/20, Loss: 23094.827580\n",
      "  Epoch 10/20, Loss: 21186.756639\n",
      "  Epoch 12/20, Loss: 19652.316393\n",
      "  Epoch 14/20, Loss: 18351.494002\n",
      "  Epoch 16/20, Loss: 17308.591205\n",
      "  Epoch 18/20, Loss: 16565.012102\n",
      "  Epoch 20/20, Loss: 16456.773324\n",
      "股票 661 训练完成，最佳损失: 16456.773324\n",
      "数据点数量: 2407, 模型保存至: ./../../model\\model_661.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 708 (211/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 74.583900\n",
      "  Epoch 2/20, Loss: 53.315114\n",
      "  Epoch 4/20, Loss: 20.938712\n",
      "  Epoch 6/20, Loss: 14.682079\n",
      "  Epoch 8/20, Loss: 15.765621\n",
      "  Epoch 10/20, Loss: 12.729587\n",
      "  Epoch 12/20, Loss: 13.235409\n",
      "  Epoch 14/20, Loss: 17.857759\n",
      "  Epoch 16/20, Loss: 15.331906\n",
      "  Epoch 18/20, Loss: 20.115866\n",
      "  Epoch 20/20, Loss: 12.555719\n",
      "股票 708 训练完成，最佳损失: 12.555719\n",
      "数据点数量: 2310, 模型保存至: ./../../model\\model_708.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 725 (212/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2.120344\n",
      "  Epoch 2/20, Loss: 0.624176\n",
      "  Epoch 4/20, Loss: 0.238794\n",
      "  Epoch 6/20, Loss: 0.128319\n",
      "  Epoch 8/20, Loss: 0.075720\n",
      "  Epoch 10/20, Loss: 0.106968\n",
      "  Epoch 12/20, Loss: 0.114938\n",
      "  Epoch 14/20, Loss: 0.103571\n",
      "  Epoch 16/20, Loss: 0.115064\n",
      "  Epoch 18/20, Loss: 0.097120\n",
      "  Epoch 20/20, Loss: 0.071734\n",
      "股票 725 训练完成，最佳损失: 0.071734\n",
      "数据点数量: 2418, 模型保存至: ./../../model\\model_725.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 768 (213/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 192.442932\n",
      "  Epoch 2/20, Loss: 49.120045\n",
      "  Epoch 4/20, Loss: 41.636301\n",
      "  Epoch 6/20, Loss: 42.287173\n",
      "  Epoch 8/20, Loss: 42.102619\n",
      "  Epoch 10/20, Loss: 42.307774\n",
      "  Epoch 12/20, Loss: 42.454604\n",
      "  Epoch 14/20, Loss: 42.371862\n",
      "  Epoch 16/20, Loss: 42.351124\n",
      "  Epoch 18/20, Loss: 42.654483\n",
      "  Epoch 20/20, Loss: 42.553423\n",
      "股票 768 训练完成，最佳损失: 40.675682\n",
      "数据点数量: 2417, 模型保存至: ./../../model\\model_768.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 776 (214/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 41.805635\n",
      "  Epoch 2/20, Loss: 8.450719\n",
      "  Epoch 4/20, Loss: 8.265286\n",
      "  Epoch 6/20, Loss: 8.412433\n",
      "  Epoch 8/20, Loss: 8.340084\n",
      "  Epoch 10/20, Loss: 8.269820\n",
      "  Epoch 12/20, Loss: 8.381728\n",
      "  Epoch 14/20, Loss: 8.385812\n",
      "  Epoch 16/20, Loss: 8.384412\n",
      "  Epoch 18/20, Loss: 8.364595\n",
      "  Epoch 20/20, Loss: 8.328571\n",
      "股票 776 训练完成，最佳损失: 8.228254\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_776.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 786 (215/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 185.129356\n",
      "  Epoch 2/20, Loss: 107.168991\n",
      "  Epoch 4/20, Loss: 104.599905\n",
      "  Epoch 6/20, Loss: 107.036147\n",
      "  Epoch 8/20, Loss: 106.560586\n",
      "  Epoch 10/20, Loss: 107.433432\n",
      "  Epoch 12/20, Loss: 106.827555\n",
      "  Epoch 14/20, Loss: 107.232780\n",
      "  Epoch 16/20, Loss: 107.476436\n",
      "  Epoch 18/20, Loss: 107.518040\n",
      "  Epoch 20/20, Loss: 107.319874\n",
      "股票 786 训练完成，最佳损失: 102.207668\n",
      "数据点数量: 2289, 模型保存至: ./../../model\\model_786.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 792 (216/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 107.361923\n",
      "  Epoch 2/20, Loss: 56.535060\n",
      "  Epoch 4/20, Loss: 57.591227\n",
      "  Epoch 6/20, Loss: 57.910858\n",
      "  Epoch 8/20, Loss: 57.953837\n",
      "  Epoch 10/20, Loss: 57.805882\n",
      "  Epoch 12/20, Loss: 57.892007\n",
      "  Epoch 14/20, Loss: 57.732883\n",
      "  Epoch 16/20, Loss: 57.494116\n",
      "  Epoch 18/20, Loss: 58.202748\n",
      "  Epoch 20/20, Loss: 56.467848\n",
      "股票 792 训练完成，最佳损失: 56.467848\n",
      "数据点数量: 2098, 模型保存至: ./../../model\\model_792.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 800 (217/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 29.169785\n",
      "  Epoch 2/20, Loss: 9.059999\n",
      "  Epoch 4/20, Loss: 7.540007\n",
      "  Epoch 6/20, Loss: 4.941714\n",
      "  Epoch 8/20, Loss: 3.856912\n",
      "  Epoch 10/20, Loss: 2.577810\n",
      "  Epoch 12/20, Loss: 2.420122\n",
      "  Epoch 14/20, Loss: 2.312495\n",
      "  Epoch 16/20, Loss: 2.754009\n",
      "  Epoch 18/20, Loss: 3.783672\n",
      "  Epoch 20/20, Loss: 2.673880\n",
      "股票 800 训练完成，最佳损失: 2.312495\n",
      "数据点数量: 2408, 模型保存至: ./../../model\\model_800.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 807 (218/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 24.912901\n",
      "  Epoch 2/20, Loss: 17.909210\n",
      "  Epoch 4/20, Loss: 19.070213\n",
      "  Epoch 6/20, Loss: 19.328237\n",
      "  Epoch 8/20, Loss: 17.484371\n",
      "  Epoch 10/20, Loss: 11.150053\n",
      "  Epoch 12/20, Loss: 7.426113\n",
      "  Epoch 14/20, Loss: 6.223666\n",
      "  Epoch 16/20, Loss: 5.273944\n",
      "  Epoch 18/20, Loss: 4.285700\n",
      "  Epoch 20/20, Loss: 3.753856\n",
      "股票 807 训练完成，最佳损失: 3.753856\n",
      "数据点数量: 2389, 模型保存至: ./../../model\\model_807.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 858 (219/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 15943.722487\n",
      "  Epoch 2/20, Loss: 14501.576916\n",
      "  Epoch 4/20, Loss: 12420.655572\n",
      "  Epoch 6/20, Loss: 12056.006058\n",
      "  Epoch 8/20, Loss: 11758.365841\n",
      "  Epoch 10/20, Loss: 11480.159233\n",
      "  Epoch 12/20, Loss: 10434.245660\n",
      "  Epoch 14/20, Loss: 9448.598838\n",
      "  Epoch 16/20, Loss: 9108.675341\n",
      "  Epoch 18/20, Loss: 9594.505700\n",
      "  Epoch 20/20, Loss: 8795.773682\n",
      "股票 858 训练完成，最佳损失: 8795.773682\n",
      "数据点数量: 2362, 模型保存至: ./../../model\\model_858.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 876 (220/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 65.998663\n",
      "  Epoch 2/20, Loss: 52.452495\n",
      "  Epoch 4/20, Loss: 53.265453\n",
      "  Epoch 6/20, Loss: 54.711122\n",
      "  Epoch 8/20, Loss: 54.423714\n",
      "  Epoch 10/20, Loss: 45.208099\n",
      "  Epoch 12/20, Loss: 28.608889\n",
      "  Epoch 14/20, Loss: 29.318359\n",
      "  Epoch 16/20, Loss: 26.671059\n",
      "  Epoch 18/20, Loss: 24.350605\n",
      "  Epoch 20/20, Loss: 21.657404\n",
      "股票 876 训练完成，最佳损失: 21.657404\n",
      "数据点数量: 2287, 模型保存至: ./../../model\\model_876.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 895 (221/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 140.132944\n",
      "  Epoch 2/20, Loss: 98.867059\n",
      "  Epoch 4/20, Loss: 102.951423\n",
      "  Epoch 6/20, Loss: 104.624145\n",
      "  Epoch 8/20, Loss: 104.553846\n",
      "  Epoch 10/20, Loss: 104.632660\n",
      "  Epoch 12/20, Loss: 104.510987\n",
      "  Epoch 14/20, Loss: 104.165405\n",
      "  Epoch 16/20, Loss: 104.502156\n",
      "  Epoch 18/20, Loss: 104.185917\n",
      "  Epoch 20/20, Loss: 104.467449\n",
      "股票 895 训练完成，最佳损失: 98.867059\n",
      "数据点数量: 2407, 模型保存至: ./../../model\\model_895.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 938 (222/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 208.091095\n",
      "  Epoch 2/20, Loss: 44.800048\n",
      "  Epoch 4/20, Loss: 22.584221\n",
      "  Epoch 6/20, Loss: 22.412888\n",
      "  Epoch 8/20, Loss: 22.536776\n",
      "  Epoch 10/20, Loss: 22.486447\n",
      "  Epoch 12/20, Loss: 22.595760\n",
      "  Epoch 14/20, Loss: 22.676388\n",
      "  Epoch 16/20, Loss: 22.572679\n",
      "  Epoch 18/20, Loss: 22.769522\n",
      "  Epoch 20/20, Loss: 22.452027\n",
      "股票 938 训练完成，最佳损失: 22.195416\n",
      "数据点数量: 2348, 模型保存至: ./../../model\\model_938.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 963 (223/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 385.689851\n",
      "  Epoch 2/20, Loss: 155.207129\n",
      "  Epoch 4/20, Loss: 84.944274\n",
      "  Epoch 6/20, Loss: 87.312074\n",
      "  Epoch 8/20, Loss: 88.595171\n",
      "  Epoch 10/20, Loss: 89.470232\n",
      "  Epoch 12/20, Loss: 89.157993\n",
      "  Epoch 14/20, Loss: 89.992906\n",
      "  Epoch 16/20, Loss: 89.175196\n",
      "  Epoch 18/20, Loss: 89.532651\n",
      "  Epoch 20/20, Loss: 89.636590\n",
      "股票 963 训练完成，最佳损失: 84.944274\n",
      "数据点数量: 2394, 模型保存至: ./../../model\\model_963.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 975 (224/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 17.723511\n",
      "  Epoch 2/20, Loss: 26.657584\n",
      "  Epoch 4/20, Loss: 22.364200\n",
      "  Epoch 6/20, Loss: 22.582440\n",
      "  Epoch 8/20, Loss: 22.440795\n",
      "  Epoch 10/20, Loss: 22.004176\n",
      "  Epoch 12/20, Loss: 16.767918\n",
      "  Epoch 14/20, Loss: 12.882898\n",
      "  Epoch 16/20, Loss: 12.160542\n",
      "  Epoch 18/20, Loss: 10.283759\n",
      "  Epoch 20/20, Loss: 10.595074\n",
      "股票 975 训练完成，最佳损失: 9.729362\n",
      "数据点数量: 2248, 模型保存至: ./../../model\\model_975.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 977 (225/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 376.150928\n",
      "  Epoch 2/20, Loss: 157.165672\n",
      "  Epoch 4/20, Loss: 108.220398\n",
      "  Epoch 6/20, Loss: 111.133556\n",
      "  Epoch 8/20, Loss: 112.604368\n",
      "  Epoch 10/20, Loss: 112.309674\n",
      "  Epoch 12/20, Loss: 113.082344\n",
      "  Epoch 14/20, Loss: 112.828340\n",
      "  Epoch 16/20, Loss: 113.219835\n",
      "  Epoch 18/20, Loss: 113.383221\n",
      "  Epoch 20/20, Loss: 113.817550\n",
      "股票 977 训练完成，最佳损失: 108.220398\n",
      "数据点数量: 2406, 模型保存至: ./../../model\\model_977.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 983 (226/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 20.152058\n",
      "  Epoch 2/20, Loss: 10.534321\n",
      "  Epoch 4/20, Loss: 5.950774\n",
      "  Epoch 6/20, Loss: 2.584732\n",
      "  Epoch 8/20, Loss: 1.325356\n",
      "  Epoch 10/20, Loss: 0.868247\n",
      "  Epoch 12/20, Loss: 0.941355\n",
      "  Epoch 14/20, Loss: 0.750705\n",
      "  Epoch 16/20, Loss: 0.599531\n",
      "  Epoch 18/20, Loss: 0.448100\n",
      "  Epoch 20/20, Loss: 0.381518\n",
      "股票 983 训练完成，最佳损失: 0.381518\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_983.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 999 (227/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 228.496227\n",
      "  Epoch 2/20, Loss: 124.365152\n",
      "  Epoch 4/20, Loss: 124.131866\n",
      "  Epoch 6/20, Loss: 126.875683\n",
      "  Epoch 8/20, Loss: 126.405244\n",
      "  Epoch 10/20, Loss: 126.308072\n",
      "  Epoch 12/20, Loss: 126.948018\n",
      "  Epoch 14/20, Loss: 125.661187\n",
      "  Epoch 16/20, Loss: 126.473636\n",
      "  Epoch 18/20, Loss: 126.764309\n",
      "  Epoch 20/20, Loss: 126.493769\n",
      "股票 999 训练完成，最佳损失: 120.792008\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_999.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 1289 (228/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 200.973836\n",
      "  Epoch 2/20, Loss: 52.546629\n",
      "  Epoch 4/20, Loss: 10.492570\n",
      "  Epoch 6/20, Loss: 6.261735\n",
      "  Epoch 8/20, Loss: 6.219045\n",
      "  Epoch 10/20, Loss: 6.102789\n",
      "  Epoch 12/20, Loss: 5.995256\n",
      "  Epoch 14/20, Loss: 6.261658\n",
      "  Epoch 16/20, Loss: 6.331547\n",
      "  Epoch 18/20, Loss: 6.598107\n",
      "  Epoch 20/20, Loss: 6.392748\n",
      "股票 1289 训练完成，最佳损失: 5.995256\n",
      "数据点数量: 772, 模型保存至: ./../../model\\model_1289.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 1965 (229/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 12.591899\n",
      "  Epoch 2/20, Loss: 7.449012\n",
      "  Epoch 4/20, Loss: 6.833625\n",
      "  Epoch 6/20, Loss: 7.479435\n",
      "  Epoch 8/20, Loss: 6.573212\n",
      "  Epoch 10/20, Loss: 4.745215\n",
      "  Epoch 12/20, Loss: 2.340680\n",
      "  Epoch 14/20, Loss: 1.910254\n",
      "  Epoch 16/20, Loss: 1.602564\n",
      "  Epoch 18/20, Loss: 1.371435\n",
      "  Epoch 20/20, Loss: 1.253882\n",
      "股票 1965 训练完成，最佳损失: 1.163631\n",
      "数据点数量: 1764, 模型保存至: ./../../model\\model_1965.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 1979 (230/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 42.273455\n",
      "  Epoch 2/20, Loss: 10.928261\n",
      "  Epoch 4/20, Loss: 11.295133\n",
      "  Epoch 6/20, Loss: 11.370296\n",
      "  Epoch 8/20, Loss: 11.218239\n",
      "  Epoch 10/20, Loss: 11.452830\n",
      "  Epoch 12/20, Loss: 11.297778\n",
      "  Epoch 14/20, Loss: 11.505200\n",
      "  Epoch 16/20, Loss: 11.388249\n",
      "  Epoch 18/20, Loss: 11.574760\n",
      "  Epoch 20/20, Loss: 4.773854\n",
      "股票 1979 训练完成，最佳损失: 4.773854\n",
      "数据点数量: 2233, 模型保存至: ./../../model\\model_1979.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2001 (231/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 46.262409\n",
      "  Epoch 2/20, Loss: 55.616351\n",
      "  Epoch 4/20, Loss: 56.924412\n",
      "  Epoch 6/20, Loss: 57.076708\n",
      "  Epoch 8/20, Loss: 56.832016\n",
      "  Epoch 10/20, Loss: 56.583761\n",
      "  Epoch 12/20, Loss: 57.943226\n",
      "  Epoch 14/20, Loss: 57.078010\n",
      "  Epoch 16/20, Loss: 56.773551\n",
      "  Epoch 18/20, Loss: 54.415527\n",
      "  Epoch 20/20, Loss: 56.306848\n",
      "股票 2001 训练完成，最佳损失: 46.262409\n",
      "数据点数量: 2408, 模型保存至: ./../../model\\model_2001.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2007 (232/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 222.642231\n",
      "  Epoch 2/20, Loss: 126.919636\n",
      "  Epoch 4/20, Loss: 114.641461\n",
      "  Epoch 6/20, Loss: 116.303167\n",
      "  Epoch 8/20, Loss: 116.107946\n",
      "  Epoch 10/20, Loss: 116.267395\n",
      "  Epoch 12/20, Loss: 115.868476\n",
      "  Epoch 14/20, Loss: 116.675763\n",
      "  Epoch 16/20, Loss: 115.676182\n",
      "  Epoch 18/20, Loss: 116.102435\n",
      "  Epoch 20/20, Loss: 116.064880\n",
      "股票 2007 训练完成，最佳损失: 114.626764\n",
      "数据点数量: 2419, 模型保存至: ./../../model\\model_2007.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2027 (233/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 10.718405\n",
      "  Epoch 2/20, Loss: 1.415020\n",
      "  Epoch 4/20, Loss: 0.622523\n",
      "  Epoch 6/20, Loss: 0.481176\n",
      "  Epoch 8/20, Loss: 0.287980\n",
      "  Epoch 10/20, Loss: 0.244184\n",
      "  Epoch 12/20, Loss: 0.303119\n",
      "  Epoch 14/20, Loss: 0.896576\n",
      "  Epoch 16/20, Loss: 0.345630\n",
      "  Epoch 18/20, Loss: 0.242129\n",
      "  Epoch 20/20, Loss: 0.287536\n",
      "股票 2027 训练完成，最佳损失: 0.242129\n",
      "数据点数量: 2331, 模型保存至: ./../../model\\model_2027.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2028 (234/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 628.003663\n",
      "  Epoch 2/20, Loss: 479.708532\n",
      "  Epoch 4/20, Loss: 428.165106\n",
      "  Epoch 6/20, Loss: 425.978383\n",
      "  Epoch 8/20, Loss: 429.084047\n",
      "  Epoch 10/20, Loss: 432.180781\n",
      "  Epoch 12/20, Loss: 431.410472\n",
      "  Epoch 14/20, Loss: 431.627120\n",
      "  Epoch 16/20, Loss: 431.945406\n",
      "  Epoch 18/20, Loss: 432.293161\n",
      "  Epoch 20/20, Loss: 432.449592\n",
      "股票 2028 训练完成，最佳损失: 424.095182\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_2028.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2049 (235/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4803.897766\n",
      "  Epoch 2/20, Loss: 4041.278065\n",
      "  Epoch 4/20, Loss: 3099.216755\n",
      "  Epoch 6/20, Loss: 2544.531324\n",
      "  Epoch 8/20, Loss: 2234.820518\n",
      "  Epoch 10/20, Loss: 2059.981488\n",
      "  Epoch 12/20, Loss: 1977.284766\n",
      "  Epoch 14/20, Loss: 1931.297773\n",
      "  Epoch 16/20, Loss: 1918.575476\n",
      "  Epoch 18/20, Loss: 1906.193691\n",
      "  Epoch 20/20, Loss: 1903.185513\n",
      "股票 2049 训练完成，最佳损失: 1903.136752\n",
      "数据点数量: 2227, 模型保存至: ./../../model\\model_2049.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2050 (236/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 89.397433\n",
      "  Epoch 2/20, Loss: 80.729598\n",
      "  Epoch 4/20, Loss: 86.956810\n",
      "  Epoch 6/20, Loss: 87.557356\n",
      "  Epoch 8/20, Loss: 86.994617\n",
      "  Epoch 10/20, Loss: 92.820211\n",
      "  Epoch 12/20, Loss: 103.638640\n",
      "  Epoch 14/20, Loss: 82.777906\n",
      "  Epoch 16/20, Loss: 83.848756\n",
      "  Epoch 18/20, Loss: 83.419868\n",
      "  Epoch 20/20, Loss: 84.207244\n",
      "股票 2050 训练完成，最佳损失: 80.729598\n",
      "数据点数量: 2372, 模型保存至: ./../../model\\model_2050.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2074 (237/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 371.581740\n",
      "  Epoch 2/20, Loss: 167.288993\n",
      "  Epoch 4/20, Loss: 110.965338\n",
      "  Epoch 6/20, Loss: 109.462272\n",
      "  Epoch 8/20, Loss: 110.280961\n",
      "  Epoch 10/20, Loss: 110.852680\n",
      "  Epoch 12/20, Loss: 109.948190\n",
      "  Epoch 14/20, Loss: 110.550717\n",
      "  Epoch 16/20, Loss: 110.627107\n",
      "  Epoch 18/20, Loss: 110.765463\n",
      "  Epoch 20/20, Loss: 110.135024\n",
      "股票 2074 训练完成，最佳损失: 109.462272\n",
      "数据点数量: 2389, 模型保存至: ./../../model\\model_2074.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2129 (238/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 188.035930\n",
      "  Epoch 2/20, Loss: 143.992011\n",
      "  Epoch 4/20, Loss: 139.366997\n",
      "  Epoch 6/20, Loss: 140.395523\n",
      "  Epoch 8/20, Loss: 140.806806\n",
      "  Epoch 10/20, Loss: 140.525640\n",
      "  Epoch 12/20, Loss: 140.383852\n",
      "  Epoch 14/20, Loss: 141.026582\n",
      "  Epoch 16/20, Loss: 140.642658\n",
      "  Epoch 18/20, Loss: 141.130413\n",
      "  Epoch 20/20, Loss: 140.244635\n",
      "股票 2129 训练完成，最佳损失: 139.119706\n",
      "数据点数量: 2003, 模型保存至: ./../../model\\model_2129.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2142 (239/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 142.788996\n",
      "  Epoch 2/20, Loss: 86.979637\n",
      "  Epoch 4/20, Loss: 91.529564\n",
      "  Epoch 6/20, Loss: 93.383269\n",
      "  Epoch 8/20, Loss: 93.229837\n",
      "  Epoch 10/20, Loss: 93.493719\n",
      "  Epoch 12/20, Loss: 93.206084\n",
      "  Epoch 14/20, Loss: 93.473880\n",
      "  Epoch 16/20, Loss: 93.338937\n",
      "  Epoch 18/20, Loss: 93.072922\n",
      "  Epoch 20/20, Loss: 93.710456\n",
      "股票 2142 训练完成，最佳损失: 86.979637\n",
      "数据点数量: 2415, 模型保存至: ./../../model\\model_2142.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2179 (240/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 376.810420\n",
      "  Epoch 2/20, Loss: 239.388057\n",
      "  Epoch 4/20, Loss: 210.155254\n",
      "  Epoch 6/20, Loss: 214.966445\n",
      "  Epoch 8/20, Loss: 217.680454\n",
      "  Epoch 10/20, Loss: 218.683641\n",
      "  Epoch 12/20, Loss: 217.400009\n",
      "  Epoch 14/20, Loss: 217.444819\n",
      "  Epoch 16/20, Loss: 218.903709\n",
      "  Epoch 18/20, Loss: 217.500192\n",
      "  Epoch 20/20, Loss: 217.638961\n",
      "股票 2179 训练完成，最佳损失: 210.155254\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_2179.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2180 (241/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 490.833843\n",
      "  Epoch 2/20, Loss: 205.955340\n",
      "  Epoch 4/20, Loss: 85.666930\n",
      "  Epoch 6/20, Loss: 79.876429\n",
      "  Epoch 8/20, Loss: 80.789156\n",
      "  Epoch 10/20, Loss: 81.445405\n",
      "  Epoch 12/20, Loss: 81.677675\n",
      "  Epoch 14/20, Loss: 81.905538\n",
      "  Epoch 16/20, Loss: 81.486868\n",
      "  Epoch 18/20, Loss: 81.285273\n",
      "  Epoch 20/20, Loss: 81.664572\n",
      "股票 2180 训练完成，最佳损失: 79.876429\n",
      "数据点数量: 2280, 模型保存至: ./../../model\\model_2180.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2230 (242/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 788.792772\n",
      "  Epoch 2/20, Loss: 408.293303\n",
      "  Epoch 4/20, Loss: 183.642678\n",
      "  Epoch 6/20, Loss: 156.775551\n",
      "  Epoch 8/20, Loss: 157.479288\n",
      "  Epoch 10/20, Loss: 159.515319\n",
      "  Epoch 12/20, Loss: 160.718331\n",
      "  Epoch 14/20, Loss: 162.503214\n",
      "  Epoch 16/20, Loss: 161.748936\n",
      "  Epoch 18/20, Loss: 162.834401\n",
      "  Epoch 20/20, Loss: 162.222402\n",
      "股票 2230 训练完成，最佳损失: 156.775551\n",
      "数据点数量: 2365, 模型保存至: ./../../model\\model_2230.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2236 (243/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 61.852566\n",
      "  Epoch 2/20, Loss: 17.706728\n",
      "  Epoch 4/20, Loss: 18.884180\n",
      "  Epoch 6/20, Loss: 19.007867\n",
      "  Epoch 8/20, Loss: 18.921371\n",
      "  Epoch 10/20, Loss: 19.017108\n",
      "  Epoch 12/20, Loss: 19.122782\n",
      "  Epoch 14/20, Loss: 19.111325\n",
      "  Epoch 16/20, Loss: 18.939882\n",
      "  Epoch 18/20, Loss: 18.804167\n",
      "  Epoch 20/20, Loss: 19.181392\n",
      "股票 2236 训练完成，最佳损失: 17.706728\n",
      "数据点数量: 2417, 模型保存至: ./../../model\\model_2236.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2241 (244/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 229.626611\n",
      "  Epoch 2/20, Loss: 139.629626\n",
      "  Epoch 4/20, Loss: 128.101033\n",
      "  Epoch 6/20, Loss: 129.008100\n",
      "  Epoch 8/20, Loss: 129.593744\n",
      "  Epoch 10/20, Loss: 130.186389\n",
      "  Epoch 12/20, Loss: 130.194715\n",
      "  Epoch 14/20, Loss: 129.247374\n",
      "  Epoch 16/20, Loss: 129.770942\n",
      "  Epoch 18/20, Loss: 130.329354\n",
      "  Epoch 20/20, Loss: 129.841141\n",
      "股票 2241 训练完成，最佳损失: 127.720112\n",
      "数据点数量: 2411, 模型保存至: ./../../model\\model_2241.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2252 (245/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 85.581138\n",
      "  Epoch 2/20, Loss: 43.973930\n",
      "  Epoch 4/20, Loss: 16.706874\n",
      "  Epoch 6/20, Loss: 4.188253\n",
      "  Epoch 8/20, Loss: 1.325472\n",
      "  Epoch 10/20, Loss: 1.050440\n",
      "  Epoch 12/20, Loss: 1.229316\n",
      "  Epoch 14/20, Loss: 1.087227\n",
      "  Epoch 16/20, Loss: 1.043434\n",
      "  Epoch 18/20, Loss: 1.028405\n",
      "  Epoch 20/20, Loss: 0.922778\n",
      "股票 2252 训练完成，最佳损失: 0.922778\n",
      "数据点数量: 2107, 模型保存至: ./../../model\\model_2252.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2271 (246/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 266.902547\n",
      "  Epoch 2/20, Loss: 232.836930\n",
      "  Epoch 4/20, Loss: 225.418498\n",
      "  Epoch 6/20, Loss: 226.762199\n",
      "  Epoch 8/20, Loss: 228.442539\n",
      "  Epoch 10/20, Loss: 227.645845\n",
      "  Epoch 12/20, Loss: 227.507803\n",
      "  Epoch 14/20, Loss: 230.634251\n",
      "  Epoch 16/20, Loss: 224.365317\n",
      "  Epoch 18/20, Loss: 223.544383\n",
      "  Epoch 20/20, Loss: 224.240707\n",
      "股票 2271 训练完成，最佳损失: 222.591315\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_2271.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2304 (247/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 9202.328474\n",
      "  Epoch 2/20, Loss: 7734.205851\n",
      "  Epoch 4/20, Loss: 5661.338888\n",
      "  Epoch 6/20, Loss: 4272.342228\n",
      "  Epoch 8/20, Loss: 3359.856340\n",
      "  Epoch 10/20, Loss: 2786.366446\n",
      "  Epoch 12/20, Loss: 2414.514499\n",
      "  Epoch 14/20, Loss: 2223.809296\n",
      "  Epoch 16/20, Loss: 2095.740300\n",
      "  Epoch 18/20, Loss: 2048.744039\n",
      "  Epoch 20/20, Loss: 2019.330509\n",
      "股票 2304 训练完成，最佳损失: 2019.330509\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_2304.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2311 (248/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1048.777580\n",
      "  Epoch 2/20, Loss: 729.063822\n",
      "  Epoch 4/20, Loss: 497.307261\n",
      "  Epoch 6/20, Loss: 449.066461\n",
      "  Epoch 8/20, Loss: 445.549265\n",
      "  Epoch 10/20, Loss: 447.859338\n",
      "  Epoch 12/20, Loss: 447.627671\n",
      "  Epoch 14/20, Loss: 448.189290\n",
      "  Epoch 16/20, Loss: 448.921058\n",
      "  Epoch 18/20, Loss: 449.155797\n",
      "  Epoch 20/20, Loss: 449.326093\n",
      "股票 2311 训练完成，最佳损失: 444.054009\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_2311.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2352 (249/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1333.404624\n",
      "  Epoch 2/20, Loss: 850.931402\n",
      "  Epoch 4/20, Loss: 438.183774\n",
      "  Epoch 6/20, Loss: 326.770395\n",
      "  Epoch 8/20, Loss: 307.093139\n",
      "  Epoch 10/20, Loss: 303.418719\n",
      "  Epoch 12/20, Loss: 303.221039\n",
      "  Epoch 14/20, Loss: 304.216935\n",
      "  Epoch 16/20, Loss: 304.472444\n",
      "  Epoch 18/20, Loss: 307.517748\n",
      "  Epoch 20/20, Loss: 274.248930\n",
      "股票 2352 训练完成，最佳损失: 274.248930\n",
      "数据点数量: 2374, 模型保存至: ./../../model\\model_2352.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2371 (250/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 40483.246797\n",
      "  Epoch 2/20, Loss: 38079.948884\n",
      "  Epoch 4/20, Loss: 34331.527012\n",
      "  Epoch 6/20, Loss: 31220.723772\n",
      "  Epoch 8/20, Loss: 28732.298379\n",
      "  Epoch 10/20, Loss: 26592.023715\n",
      "  Epoch 12/20, Loss: 24786.835057\n",
      "  Epoch 14/20, Loss: 23355.890872\n",
      "  Epoch 16/20, Loss: 22160.462025\n",
      "  Epoch 18/20, Loss: 21169.199671\n",
      "  Epoch 20/20, Loss: 20379.156082\n",
      "股票 2371 训练完成，最佳损失: 20379.156082\n",
      "数据点数量: 2351, 模型保存至: ./../../model\\model_2371.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2415 (251/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 478.338296\n",
      "  Epoch 2/20, Loss: 258.485362\n",
      "  Epoch 4/20, Loss: 164.983735\n",
      "  Epoch 6/20, Loss: 161.856933\n",
      "  Epoch 8/20, Loss: 163.734991\n",
      "  Epoch 10/20, Loss: 164.519607\n",
      "  Epoch 12/20, Loss: 164.118723\n",
      "  Epoch 14/20, Loss: 165.110859\n",
      "  Epoch 16/20, Loss: 164.330295\n",
      "  Epoch 18/20, Loss: 165.210922\n",
      "  Epoch 20/20, Loss: 165.559901\n",
      "股票 2415 训练完成，最佳损失: 161.856933\n",
      "数据点数量: 2378, 模型保存至: ./../../model\\model_2415.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2422 (252/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 134.648222\n",
      "  Epoch 2/20, Loss: 41.310497\n",
      "  Epoch 4/20, Loss: 42.101501\n",
      "  Epoch 6/20, Loss: 42.589985\n",
      "  Epoch 8/20, Loss: 42.662817\n",
      "  Epoch 10/20, Loss: 42.877135\n",
      "  Epoch 12/20, Loss: 42.948771\n",
      "  Epoch 14/20, Loss: 42.565209\n",
      "  Epoch 16/20, Loss: 42.778208\n",
      "  Epoch 18/20, Loss: 43.000171\n",
      "  Epoch 20/20, Loss: 42.910991\n",
      "股票 2422 训练完成，最佳损失: 40.113470\n",
      "数据点数量: 2418, 模型保存至: ./../../model\\model_2422.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2459 (253/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 299.087665\n",
      "  Epoch 2/20, Loss: 257.060642\n",
      "  Epoch 4/20, Loss: 240.135083\n",
      "  Epoch 6/20, Loss: 247.281544\n",
      "  Epoch 8/20, Loss: 207.067934\n",
      "  Epoch 10/20, Loss: 153.800146\n",
      "  Epoch 12/20, Loss: 158.555782\n",
      "  Epoch 14/20, Loss: 134.765547\n",
      "  Epoch 16/20, Loss: 115.887566\n",
      "  Epoch 18/20, Loss: 103.784926\n",
      "  Epoch 20/20, Loss: 92.019052\n",
      "股票 2459 训练完成，最佳损失: 92.019052\n",
      "数据点数量: 2350, 模型保存至: ./../../model\\model_2459.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2460 (254/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1724.291950\n",
      "  Epoch 2/20, Loss: 1406.143246\n",
      "  Epoch 4/20, Loss: 1123.079555\n",
      "  Epoch 6/20, Loss: 1027.559926\n",
      "  Epoch 8/20, Loss: 1002.054492\n",
      "  Epoch 10/20, Loss: 995.661419\n",
      "  Epoch 12/20, Loss: 994.242370\n",
      "  Epoch 14/20, Loss: 994.943535\n",
      "  Epoch 16/20, Loss: 999.475793\n",
      "  Epoch 18/20, Loss: 995.835789\n",
      "  Epoch 20/20, Loss: 994.809910\n",
      "股票 2460 训练完成，最佳损失: 993.830823\n",
      "数据点数量: 2405, 模型保存至: ./../../model\\model_2460.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2463 (255/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 146.366235\n",
      "  Epoch 2/20, Loss: 118.072567\n",
      "  Epoch 4/20, Loss: 91.765465\n",
      "  Epoch 6/20, Loss: 55.225152\n",
      "  Epoch 8/20, Loss: 51.824375\n",
      "  Epoch 10/20, Loss: 46.036394\n",
      "  Epoch 12/20, Loss: 41.826318\n",
      "  Epoch 14/20, Loss: 45.609561\n",
      "  Epoch 16/20, Loss: 36.341451\n",
      "  Epoch 18/20, Loss: 29.999639\n",
      "  Epoch 20/20, Loss: 25.745831\n",
      "股票 2463 训练完成，最佳损失: 25.745831\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_2463.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2466 (256/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1687.698437\n",
      "  Epoch 2/20, Loss: 1281.471463\n",
      "  Epoch 4/20, Loss: 941.773324\n",
      "  Epoch 6/20, Loss: 829.829464\n",
      "  Epoch 8/20, Loss: 799.515845\n",
      "  Epoch 10/20, Loss: 795.561986\n",
      "  Epoch 12/20, Loss: 795.910463\n",
      "  Epoch 14/20, Loss: 797.339250\n",
      "  Epoch 16/20, Loss: 793.772784\n",
      "  Epoch 18/20, Loss: 795.677352\n",
      "  Epoch 20/20, Loss: 798.086512\n",
      "股票 2466 训练完成，最佳损失: 793.772784\n",
      "数据点数量: 2396, 模型保存至: ./../../model\\model_2466.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2475 (257/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 368.648924\n",
      "  Epoch 2/20, Loss: 279.175174\n",
      "  Epoch 4/20, Loss: 252.273059\n",
      "  Epoch 6/20, Loss: 254.474141\n",
      "  Epoch 8/20, Loss: 256.700778\n",
      "  Epoch 10/20, Loss: 258.038275\n",
      "  Epoch 12/20, Loss: 257.746355\n",
      "  Epoch 14/20, Loss: 256.853406\n",
      "  Epoch 16/20, Loss: 260.321242\n",
      "  Epoch 18/20, Loss: 257.900951\n",
      "  Epoch 20/20, Loss: 256.034508\n",
      "股票 2475 训练完成，最佳损失: 252.273059\n",
      "数据点数量: 2405, 模型保存至: ./../../model\\model_2475.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2493 (258/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 16.566846\n",
      "  Epoch 2/20, Loss: 38.157068\n",
      "  Epoch 4/20, Loss: 31.565573\n",
      "  Epoch 6/20, Loss: 34.844987\n",
      "  Epoch 8/20, Loss: 30.910677\n",
      "  Epoch 10/20, Loss: 33.518476\n",
      "  Epoch 12/20, Loss: 32.830293\n",
      "  Epoch 14/20, Loss: 29.761848\n",
      "  Epoch 16/20, Loss: 28.890396\n",
      "  Epoch 18/20, Loss: 13.457086\n",
      "  Epoch 20/20, Loss: 13.525772\n",
      "股票 2493 训练完成，最佳损失: 13.457086\n",
      "数据点数量: 2422, 模型保存至: ./../../model\\model_2493.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2555 (259/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 140.637132\n",
      "  Epoch 2/20, Loss: 63.111023\n",
      "  Epoch 4/20, Loss: 57.630078\n",
      "  Epoch 6/20, Loss: 57.646543\n",
      "  Epoch 8/20, Loss: 58.028192\n",
      "  Epoch 10/20, Loss: 57.856102\n",
      "  Epoch 12/20, Loss: 58.396081\n",
      "  Epoch 14/20, Loss: 58.053981\n",
      "  Epoch 16/20, Loss: 64.173874\n",
      "  Epoch 18/20, Loss: 57.229079\n",
      "  Epoch 20/20, Loss: 46.492603\n",
      "股票 2555 训练完成，最佳损失: 46.492603\n",
      "数据点数量: 2261, 模型保存至: ./../../model\\model_2555.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2594 (260/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 28039.382662\n",
      "  Epoch 2/20, Loss: 25909.442154\n",
      "  Epoch 4/20, Loss: 22713.801216\n",
      "  Epoch 6/20, Loss: 20193.691845\n",
      "  Epoch 8/20, Loss: 18168.750244\n",
      "  Epoch 10/20, Loss: 16571.374870\n",
      "  Epoch 12/20, Loss: 15288.644703\n",
      "  Epoch 14/20, Loss: 14325.439643\n",
      "  Epoch 16/20, Loss: 13547.723392\n",
      "  Epoch 18/20, Loss: 12923.769130\n",
      "  Epoch 20/20, Loss: 12506.349115\n",
      "股票 2594 训练完成，最佳损失: 12506.349115\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_2594.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2601 (261/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 69.883756\n",
      "  Epoch 2/20, Loss: 70.322193\n",
      "  Epoch 4/20, Loss: 72.235253\n",
      "  Epoch 6/20, Loss: 99.989021\n",
      "  Epoch 8/20, Loss: 77.317633\n",
      "  Epoch 10/20, Loss: 28.591272\n",
      "  Epoch 12/20, Loss: 24.838776\n",
      "  Epoch 14/20, Loss: 26.412491\n",
      "  Epoch 16/20, Loss: 22.896219\n",
      "  Epoch 18/20, Loss: 22.394723\n",
      "  Epoch 20/20, Loss: 19.220898\n",
      "股票 2601 训练完成，最佳损失: 19.220898\n",
      "数据点数量: 2347, 模型保存至: ./../../model\\model_2601.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2648 (262/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 41.349236\n",
      "  Epoch 2/20, Loss: 53.584901\n",
      "  Epoch 4/20, Loss: 11.021994\n",
      "  Epoch 6/20, Loss: 4.270333\n",
      "  Epoch 8/20, Loss: 4.112413\n",
      "  Epoch 10/20, Loss: 2.863217\n",
      "  Epoch 12/20, Loss: 3.316592\n",
      "  Epoch 14/20, Loss: 2.424374\n",
      "  Epoch 16/20, Loss: 3.647000\n",
      "  Epoch 18/20, Loss: 1.495437\n",
      "  Epoch 20/20, Loss: 1.290671\n",
      "股票 2648 训练完成，最佳损失: 1.242397\n",
      "数据点数量: 2402, 模型保存至: ./../../model\\model_2648.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2709 (263/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 497.466473\n",
      "  Epoch 2/20, Loss: 453.412023\n",
      "  Epoch 4/20, Loss: 437.323851\n",
      "  Epoch 6/20, Loss: 492.388687\n",
      "  Epoch 8/20, Loss: 502.166774\n",
      "  Epoch 10/20, Loss: 473.432487\n",
      "  Epoch 12/20, Loss: 471.702014\n",
      "  Epoch 14/20, Loss: 398.633853\n",
      "  Epoch 16/20, Loss: 358.433177\n",
      "  Epoch 18/20, Loss: 342.141347\n",
      "  Epoch 20/20, Loss: 310.756928\n",
      "股票 2709 训练完成，最佳损失: 310.756928\n",
      "数据点数量: 2408, 模型保存至: ./../../model\\model_2709.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2714 (264/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 814.927333\n",
      "  Epoch 2/20, Loss: 638.485856\n",
      "  Epoch 4/20, Loss: 611.093076\n",
      "  Epoch 6/20, Loss: 694.076990\n",
      "  Epoch 8/20, Loss: 553.966754\n",
      "  Epoch 10/20, Loss: 406.850395\n",
      "  Epoch 12/20, Loss: 311.750867\n",
      "  Epoch 14/20, Loss: 259.818724\n",
      "  Epoch 16/20, Loss: 205.529455\n",
      "  Epoch 18/20, Loss: 238.679884\n",
      "  Epoch 20/20, Loss: 190.019171\n",
      "股票 2714 训练完成，最佳损失: 184.150035\n",
      "数据点数量: 2406, 模型保存至: ./../../model\\model_2714.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2736 (265/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 40.038180\n",
      "  Epoch 2/20, Loss: 12.216791\n",
      "  Epoch 4/20, Loss: 11.731825\n",
      "  Epoch 6/20, Loss: 8.757559\n",
      "  Epoch 8/20, Loss: 5.686804\n",
      "  Epoch 10/20, Loss: 4.606771\n",
      "  Epoch 12/20, Loss: 3.356040\n",
      "  Epoch 14/20, Loss: 2.911092\n",
      "  Epoch 16/20, Loss: 2.459391\n",
      "  Epoch 18/20, Loss: 3.268429\n",
      "  Epoch 20/20, Loss: 2.712207\n",
      "股票 2736 训练完成，最佳损失: 2.459391\n",
      "数据点数量: 2405, 模型保存至: ./../../model\\model_2736.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2812 (266/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 10908.712567\n",
      "  Epoch 2/20, Loss: 10124.357301\n",
      "  Epoch 4/20, Loss: 8957.935008\n",
      "  Epoch 6/20, Loss: 8088.013688\n",
      "  Epoch 8/20, Loss: 7447.588903\n",
      "  Epoch 10/20, Loss: 6990.380225\n",
      "  Epoch 12/20, Loss: 6642.175474\n",
      "  Epoch 14/20, Loss: 6397.194077\n",
      "  Epoch 16/20, Loss: 6241.791411\n",
      "  Epoch 18/20, Loss: 6111.751924\n",
      "  Epoch 20/20, Loss: 6038.241285\n",
      "股票 2812 训练完成，最佳损失: 6038.241285\n",
      "数据点数量: 1988, 模型保存至: ./../../model\\model_2812.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2916 (267/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 7357.960602\n",
      "  Epoch 2/20, Loss: 6311.950884\n",
      "  Epoch 4/20, Loss: 4758.363621\n",
      "  Epoch 6/20, Loss: 3610.037386\n",
      "  Epoch 8/20, Loss: 2771.783596\n",
      "  Epoch 10/20, Loss: 2172.672378\n",
      "  Epoch 12/20, Loss: 1783.090907\n",
      "  Epoch 14/20, Loss: 1510.746417\n",
      "  Epoch 16/20, Loss: 1402.794035\n",
      "  Epoch 18/20, Loss: 1354.851411\n",
      "  Epoch 20/20, Loss: 1288.147346\n",
      "股票 2916 训练完成，最佳损失: 1288.147346\n",
      "数据点数量: 1770, 模型保存至: ./../../model\\model_2916.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2920 (268/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 7227.463904\n",
      "  Epoch 2/20, Loss: 6305.628146\n",
      "  Epoch 4/20, Loss: 4974.877717\n",
      "  Epoch 6/20, Loss: 4030.097309\n",
      "  Epoch 8/20, Loss: 3384.933676\n",
      "  Epoch 10/20, Loss: 2911.393252\n",
      "  Epoch 12/20, Loss: 2605.064522\n",
      "  Epoch 14/20, Loss: 2387.932162\n",
      "  Epoch 16/20, Loss: 2275.321921\n",
      "  Epoch 18/20, Loss: 2212.094507\n",
      "  Epoch 20/20, Loss: 2147.895199\n",
      "股票 2920 训练完成，最佳损失: 2147.895199\n",
      "数据点数量: 1763, 模型保存至: ./../../model\\model_2920.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 2938 (269/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 658.970755\n",
      "  Epoch 2/20, Loss: 385.433729\n",
      "  Epoch 4/20, Loss: 166.282718\n",
      "  Epoch 6/20, Loss: 106.179268\n",
      "  Epoch 8/20, Loss: 93.400387\n",
      "  Epoch 10/20, Loss: 92.636110\n",
      "  Epoch 12/20, Loss: 91.990317\n",
      "  Epoch 14/20, Loss: 92.212785\n",
      "  Epoch 16/20, Loss: 92.768705\n",
      "  Epoch 18/20, Loss: 92.638674\n",
      "  Epoch 20/20, Loss: 91.787427\n",
      "股票 2938 训练完成，最佳损失: 91.441231\n",
      "数据点数量: 1584, 模型保存至: ./../../model\\model_2938.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 3816 (270/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1.748628\n",
      "  Epoch 2/20, Loss: 1.418886\n",
      "  Epoch 4/20, Loss: 0.130412\n",
      "  Epoch 6/20, Loss: 0.240580\n",
      "  Epoch 8/20, Loss: 0.140614\n",
      "  Epoch 10/20, Loss: 0.069489\n",
      "  Epoch 12/20, Loss: 0.091551\n",
      "  Epoch 14/20, Loss: 0.045072\n",
      "  Epoch 16/20, Loss: 0.042489\n",
      "  Epoch 18/20, Loss: 0.056482\n",
      "  Epoch 20/20, Loss: 0.044441\n",
      "股票 3816 训练完成，最佳损失: 0.042489\n",
      "数据点数量: 1358, 模型保存至: ./../../model\\model_3816.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300014 (271/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1974.053334\n",
      "  Epoch 2/20, Loss: 1686.549186\n",
      "  Epoch 4/20, Loss: 1412.748300\n",
      "  Epoch 6/20, Loss: 1309.638010\n",
      "  Epoch 8/20, Loss: 1264.617170\n",
      "  Epoch 10/20, Loss: 1248.344459\n",
      "  Epoch 12/20, Loss: 1253.770130\n",
      "  Epoch 14/20, Loss: 1237.732000\n",
      "  Epoch 16/20, Loss: 1235.258889\n",
      "  Epoch 18/20, Loss: 1237.568700\n",
      "  Epoch 20/20, Loss: 1236.540159\n",
      "股票 300014 训练完成，最佳损失: 1235.258889\n",
      "数据点数量: 2402, 模型保存至: ./../../model\\model_300014.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300015 (272/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 96.165019\n",
      "  Epoch 2/20, Loss: 95.045688\n",
      "  Epoch 4/20, Loss: 98.096432\n",
      "  Epoch 6/20, Loss: 116.363348\n",
      "  Epoch 8/20, Loss: 115.592247\n",
      "  Epoch 10/20, Loss: 96.347056\n",
      "  Epoch 12/20, Loss: 186.669133\n",
      "  Epoch 14/20, Loss: 134.604131\n",
      "  Epoch 16/20, Loss: 113.600077\n",
      "  Epoch 18/20, Loss: 102.582470\n",
      "  Epoch 20/20, Loss: 97.188474\n",
      "股票 300015 训练完成，最佳损失: 95.045688\n",
      "数据点数量: 2404, 模型保存至: ./../../model\\model_300015.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300033 (273/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 10801.144836\n",
      "  Epoch 2/20, Loss: 9283.984645\n",
      "  Epoch 4/20, Loss: 7340.556711\n",
      "  Epoch 6/20, Loss: 6038.973745\n",
      "  Epoch 8/20, Loss: 5171.877585\n",
      "  Epoch 10/20, Loss: 4595.457985\n",
      "  Epoch 12/20, Loss: 4241.750233\n",
      "  Epoch 14/20, Loss: 4014.711140\n",
      "  Epoch 16/20, Loss: 3871.871514\n",
      "  Epoch 18/20, Loss: 3787.158228\n",
      "  Epoch 20/20, Loss: 3756.160194\n",
      "股票 300033 训练完成，最佳损失: 3756.160194\n",
      "数据点数量: 2421, 模型保存至: ./../../model\\model_300033.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300059 (274/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 60.854835\n",
      "  Epoch 2/20, Loss: 48.192370\n",
      "  Epoch 4/20, Loss: 51.342004\n",
      "  Epoch 6/20, Loss: 80.999478\n",
      "  Epoch 8/20, Loss: 56.339490\n",
      "  Epoch 10/20, Loss: 36.420452\n",
      "  Epoch 12/20, Loss: 29.022081\n",
      "  Epoch 14/20, Loss: 19.850744\n",
      "  Epoch 16/20, Loss: 19.751504\n",
      "  Epoch 18/20, Loss: 15.989567\n",
      "  Epoch 20/20, Loss: 12.406471\n",
      "股票 300059 训练完成，最佳损失: 12.406471\n",
      "数据点数量: 2411, 模型保存至: ./../../model\\model_300059.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300122 (275/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1889.449217\n",
      "  Epoch 2/20, Loss: 1571.459280\n",
      "  Epoch 4/20, Loss: 1258.074221\n",
      "  Epoch 6/20, Loss: 1149.025196\n",
      "  Epoch 8/20, Loss: 1109.259117\n",
      "  Epoch 10/20, Loss: 1100.566151\n",
      "  Epoch 12/20, Loss: 1100.333375\n",
      "  Epoch 14/20, Loss: 1102.557363\n",
      "  Epoch 16/20, Loss: 1100.783996\n",
      "  Epoch 18/20, Loss: 1100.770112\n",
      "  Epoch 20/20, Loss: 1103.830809\n",
      "股票 300122 训练完成，最佳损失: 1100.046949\n",
      "数据点数量: 2418, 模型保存至: ./../../model\\model_300122.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300124 (276/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1118.399199\n",
      "  Epoch 2/20, Loss: 828.522406\n",
      "  Epoch 4/20, Loss: 634.639535\n",
      "  Epoch 6/20, Loss: 594.867632\n",
      "  Epoch 8/20, Loss: 592.405706\n",
      "  Epoch 10/20, Loss: 592.548323\n",
      "  Epoch 12/20, Loss: 593.107087\n",
      "  Epoch 14/20, Loss: 596.185428\n",
      "  Epoch 16/20, Loss: 600.082226\n",
      "  Epoch 18/20, Loss: 600.096602\n",
      "  Epoch 20/20, Loss: 597.234781\n",
      "股票 300124 训练完成，最佳损失: 592.405706\n",
      "数据点数量: 2409, 模型保存至: ./../../model\\model_300124.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300274 (277/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1994.750388\n",
      "  Epoch 2/20, Loss: 1793.950503\n",
      "  Epoch 4/20, Loss: 1547.220570\n",
      "  Epoch 6/20, Loss: 1481.511284\n",
      "  Epoch 8/20, Loss: 1556.606524\n",
      "  Epoch 10/20, Loss: 1608.776100\n",
      "  Epoch 12/20, Loss: 1499.692078\n",
      "  Epoch 14/20, Loss: 1422.249142\n",
      "  Epoch 16/20, Loss: 1350.347941\n",
      "  Epoch 18/20, Loss: 1323.830504\n",
      "  Epoch 20/20, Loss: 1304.287028\n",
      "股票 300274 训练完成，最佳损失: 1302.175270\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_300274.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300308 (278/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2130.521913\n",
      "  Epoch 2/20, Loss: 1789.108669\n",
      "  Epoch 4/20, Loss: 1500.474116\n",
      "  Epoch 6/20, Loss: 1389.217266\n",
      "  Epoch 8/20, Loss: 1353.734205\n",
      "  Epoch 10/20, Loss: 1338.880566\n",
      "  Epoch 12/20, Loss: 1334.316762\n",
      "  Epoch 14/20, Loss: 1340.071632\n",
      "  Epoch 16/20, Loss: 1333.954127\n",
      "  Epoch 18/20, Loss: 1335.548676\n",
      "  Epoch 20/20, Loss: 1336.836444\n",
      "股票 300308 训练完成，最佳损失: 1333.954127\n",
      "数据点数量: 2278, 模型保存至: ./../../model\\model_300308.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300316 (279/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 753.459574\n",
      "  Epoch 2/20, Loss: 597.418924\n",
      "  Epoch 4/20, Loss: 512.076072\n",
      "  Epoch 6/20, Loss: 501.239833\n",
      "  Epoch 8/20, Loss: 501.055393\n",
      "  Epoch 10/20, Loss: 504.134365\n",
      "  Epoch 12/20, Loss: 504.462118\n",
      "  Epoch 14/20, Loss: 505.167968\n",
      "  Epoch 16/20, Loss: 504.663302\n",
      "  Epoch 18/20, Loss: 505.929770\n",
      "  Epoch 20/20, Loss: 505.696260\n",
      "股票 300316 训练完成，最佳损失: 500.237726\n",
      "数据点数量: 2344, 模型保存至: ./../../model\\model_300316.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300347 (280/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 4473.745714\n",
      "  Epoch 2/20, Loss: 3779.565569\n",
      "  Epoch 4/20, Loss: 2925.875746\n",
      "  Epoch 6/20, Loss: 2457.701272\n",
      "  Epoch 8/20, Loss: 2195.557112\n",
      "  Epoch 10/20, Loss: 2083.971126\n",
      "  Epoch 12/20, Loss: 2026.857323\n",
      "  Epoch 14/20, Loss: 2002.590710\n",
      "  Epoch 16/20, Loss: 1988.239440\n",
      "  Epoch 18/20, Loss: 1990.599829\n",
      "  Epoch 20/20, Loss: 1989.306208\n",
      "股票 300347 训练完成，最佳损失: 1985.787204\n",
      "数据点数量: 2389, 模型保存至: ./../../model\\model_300347.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300394 (281/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1151.109123\n",
      "  Epoch 2/20, Loss: 1033.106101\n",
      "  Epoch 4/20, Loss: 1013.499978\n",
      "  Epoch 6/20, Loss: 1176.621764\n",
      "  Epoch 8/20, Loss: 1131.162850\n",
      "  Epoch 10/20, Loss: 1132.089269\n",
      "  Epoch 12/20, Loss: 1071.762105\n",
      "  Epoch 14/20, Loss: 1079.925142\n",
      "  Epoch 16/20, Loss: 1211.066602\n",
      "  Epoch 18/20, Loss: 1231.123134\n",
      "  Epoch 20/20, Loss: 1180.744537\n",
      "股票 300394 训练完成，最佳损失: 1007.361586\n",
      "数据点数量: 2410, 模型保存至: ./../../model\\model_300394.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300408 (282/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 250.694393\n",
      "  Epoch 2/20, Loss: 92.945381\n",
      "  Epoch 4/20, Loss: 74.753532\n",
      "  Epoch 6/20, Loss: 77.866961\n",
      "  Epoch 8/20, Loss: 78.522747\n",
      "  Epoch 10/20, Loss: 78.668970\n",
      "  Epoch 12/20, Loss: 78.147855\n",
      "  Epoch 14/20, Loss: 79.164691\n",
      "  Epoch 16/20, Loss: 78.782223\n",
      "  Epoch 18/20, Loss: 78.594068\n",
      "  Epoch 20/20, Loss: 78.947272\n",
      "股票 300408 训练完成，最佳损失: 73.062696\n",
      "数据点数量: 2412, 模型保存至: ./../../model\\model_300408.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300413 (283/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 754.387945\n",
      "  Epoch 2/20, Loss: 490.645591\n",
      "  Epoch 4/20, Loss: 315.884755\n",
      "  Epoch 6/20, Loss: 279.760442\n",
      "  Epoch 8/20, Loss: 276.268100\n",
      "  Epoch 10/20, Loss: 275.304463\n",
      "  Epoch 12/20, Loss: 275.497132\n",
      "  Epoch 14/20, Loss: 276.524098\n",
      "  Epoch 16/20, Loss: 277.372436\n",
      "  Epoch 18/20, Loss: 276.761329\n",
      "  Epoch 20/20, Loss: 277.632129\n",
      "股票 300413 训练完成，最佳损失: 275.304463\n",
      "数据点数量: 2162, 模型保存至: ./../../model\\model_300413.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300418 (284/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 315.948128\n",
      "  Epoch 2/20, Loss: 136.647503\n",
      "  Epoch 4/20, Loss: 106.429835\n",
      "  Epoch 6/20, Loss: 106.924684\n",
      "  Epoch 8/20, Loss: 107.546286\n",
      "  Epoch 10/20, Loss: 107.453268\n",
      "  Epoch 12/20, Loss: 107.794793\n",
      "  Epoch 14/20, Loss: 107.584014\n",
      "  Epoch 16/20, Loss: 107.978227\n",
      "  Epoch 18/20, Loss: 107.522879\n",
      "  Epoch 20/20, Loss: 107.608489\n",
      "股票 300418 训练完成，最佳损失: 106.429835\n",
      "数据点数量: 2351, 模型保存至: ./../../model\\model_300418.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300433 (285/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 92.448407\n",
      "  Epoch 2/20, Loss: 50.266965\n",
      "  Epoch 4/20, Loss: 50.453832\n",
      "  Epoch 6/20, Loss: 50.740247\n",
      "  Epoch 8/20, Loss: 50.654733\n",
      "  Epoch 10/20, Loss: 50.559602\n",
      "  Epoch 12/20, Loss: 50.668039\n",
      "  Epoch 14/20, Loss: 50.443830\n",
      "  Epoch 16/20, Loss: 50.761185\n",
      "  Epoch 18/20, Loss: 50.720482\n",
      "  Epoch 20/20, Loss: 50.729463\n",
      "股票 300433 训练完成，最佳损失: 50.266965\n",
      "数据点数量: 2397, 模型保存至: ./../../model\\model_300433.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300442 (286/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 310.052797\n",
      "  Epoch 2/20, Loss: 182.612770\n",
      "  Epoch 4/20, Loss: 114.054567\n",
      "  Epoch 6/20, Loss: 99.965540\n",
      "  Epoch 8/20, Loss: 99.491747\n",
      "  Epoch 10/20, Loss: 77.816478\n",
      "  Epoch 12/20, Loss: 72.847288\n",
      "  Epoch 14/20, Loss: 98.516932\n",
      "  Epoch 16/20, Loss: 75.472541\n",
      "  Epoch 18/20, Loss: 69.437626\n",
      "  Epoch 20/20, Loss: 60.980163\n",
      "股票 300442 训练完成，最佳损失: 60.980163\n",
      "数据点数量: 2408, 模型保存至: ./../../model\\model_300442.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300450 (287/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 593.097369\n",
      "  Epoch 2/20, Loss: 439.323879\n",
      "  Epoch 4/20, Loss: 360.928470\n",
      "  Epoch 6/20, Loss: 352.330511\n",
      "  Epoch 8/20, Loss: 352.661381\n",
      "  Epoch 10/20, Loss: 354.808305\n",
      "  Epoch 12/20, Loss: 354.603259\n",
      "  Epoch 14/20, Loss: 355.053703\n",
      "  Epoch 16/20, Loss: 354.399883\n",
      "  Epoch 18/20, Loss: 356.467274\n",
      "  Epoch 20/20, Loss: 356.040037\n",
      "股票 300450 训练完成，最佳损失: 352.330511\n",
      "数据点数量: 2254, 模型保存至: ./../../model\\model_300450.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300498 (288/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 134.606773\n",
      "  Epoch 2/20, Loss: 28.825028\n",
      "  Epoch 4/20, Loss: 19.907595\n",
      "  Epoch 6/20, Loss: 20.021939\n",
      "  Epoch 8/20, Loss: 20.377189\n",
      "  Epoch 10/20, Loss: 20.337689\n",
      "  Epoch 12/20, Loss: 20.180476\n",
      "  Epoch 14/20, Loss: 20.318837\n",
      "  Epoch 16/20, Loss: 20.198949\n",
      "  Epoch 18/20, Loss: 20.359446\n",
      "  Epoch 20/20, Loss: 20.413137\n",
      "股票 300498 训练完成，最佳损失: 19.907595\n",
      "数据点数量: 2280, 模型保存至: ./../../model\\model_300498.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300502 (289/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1364.534767\n",
      "  Epoch 2/20, Loss: 1186.509425\n",
      "  Epoch 4/20, Loss: 1122.377068\n",
      "  Epoch 6/20, Loss: 1102.153170\n",
      "  Epoch 8/20, Loss: 1111.715787\n",
      "  Epoch 10/20, Loss: 1084.611444\n",
      "  Epoch 12/20, Loss: 1072.032288\n",
      "  Epoch 14/20, Loss: 1113.817506\n",
      "  Epoch 16/20, Loss: 1173.542903\n",
      "  Epoch 18/20, Loss: 1213.284288\n",
      "  Epoch 20/20, Loss: 914.618596\n",
      "股票 300502 训练完成，最佳损失: 914.618596\n",
      "数据点数量: 2207, 模型保存至: ./../../model\\model_300502.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300628 (290/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 719.581817\n",
      "  Epoch 2/20, Loss: 463.196587\n",
      "  Epoch 4/20, Loss: 276.752566\n",
      "  Epoch 6/20, Loss: 238.557939\n",
      "  Epoch 8/20, Loss: 236.553542\n",
      "  Epoch 10/20, Loss: 237.282458\n",
      "  Epoch 12/20, Loss: 237.846758\n",
      "  Epoch 14/20, Loss: 238.583267\n",
      "  Epoch 16/20, Loss: 237.989092\n",
      "  Epoch 18/20, Loss: 238.237252\n",
      "  Epoch 20/20, Loss: 240.463810\n",
      "股票 300628 训练完成，最佳损失: 235.531617\n",
      "数据点数量: 1955, 模型保存至: ./../../model\\model_300628.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300661 (291/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 6721.242175\n",
      "  Epoch 2/20, Loss: 5941.311061\n",
      "  Epoch 4/20, Loss: 4803.487285\n",
      "  Epoch 6/20, Loss: 4006.909099\n",
      "  Epoch 8/20, Loss: 3461.799077\n",
      "  Epoch 10/20, Loss: 3108.235512\n",
      "  Epoch 12/20, Loss: 3879.917733\n",
      "  Epoch 14/20, Loss: 3845.156836\n",
      "  Epoch 16/20, Loss: 3904.115631\n",
      "  Epoch 18/20, Loss: 3957.816057\n",
      "  Epoch 20/20, Loss: 3610.079855\n",
      "股票 300661 训练完成，最佳损失: 3108.235512\n",
      "数据点数量: 1893, 模型保存至: ./../../model\\model_300661.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300750 (292/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 31871.905133\n",
      "  Epoch 2/20, Loss: 30133.839851\n",
      "  Epoch 4/20, Loss: 27163.747138\n",
      "  Epoch 6/20, Loss: 24576.885611\n",
      "  Epoch 8/20, Loss: 22326.323864\n",
      "  Epoch 10/20, Loss: 20360.853620\n",
      "  Epoch 12/20, Loss: 18616.412433\n",
      "  Epoch 14/20, Loss: 17201.069244\n",
      "  Epoch 16/20, Loss: 15930.509234\n",
      "  Epoch 18/20, Loss: 14819.159299\n",
      "  Epoch 20/20, Loss: 13892.542363\n",
      "股票 300750 训练完成，最佳损失: 13892.542363\n",
      "数据点数量: 1654, 模型保存至: ./../../model\\model_300750.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300759 (293/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 1328.517213\n",
      "  Epoch 2/20, Loss: 1030.619668\n",
      "  Epoch 4/20, Loss: 712.177006\n",
      "  Epoch 6/20, Loss: 552.586812\n",
      "  Epoch 8/20, Loss: 480.661249\n",
      "  Epoch 10/20, Loss: 451.756097\n",
      "  Epoch 12/20, Loss: 442.509963\n",
      "  Epoch 14/20, Loss: 433.775931\n",
      "  Epoch 16/20, Loss: 431.975276\n",
      "  Epoch 18/20, Loss: 433.575604\n",
      "  Epoch 20/20, Loss: 433.207253\n",
      "股票 300759 训练完成，最佳损失: 431.583748\n",
      "数据点数量: 1498, 模型保存至: ./../../model\\model_300759.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300760 (294/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 73635.706797\n",
      "  Epoch 2/20, Loss: 70579.480313\n",
      "  Epoch 4/20, Loss: 65190.665625\n",
      "  Epoch 6/20, Loss: 60258.121807\n",
      "  Epoch 8/20, Loss: 55578.131494\n",
      "  Epoch 10/20, Loss: 51170.441667\n",
      "  Epoch 12/20, Loss: 47154.451868\n",
      "  Epoch 14/20, Loss: 43464.281802\n",
      "  Epoch 16/20, Loss: 39962.215494\n",
      "  Epoch 18/20, Loss: 36812.566298\n",
      "  Epoch 20/20, Loss: 33913.591851\n",
      "股票 300760 训练完成，最佳损失: 33913.591851\n",
      "数据点数量: 1570, 模型保存至: ./../../model\\model_300760.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300782 (295/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 18246.082875\n",
      "  Epoch 2/20, Loss: 16965.173029\n",
      "  Epoch 4/20, Loss: 14974.559359\n",
      "  Epoch 6/20, Loss: 13218.595903\n",
      "  Epoch 8/20, Loss: 11685.856236\n",
      "  Epoch 10/20, Loss: 10354.958150\n",
      "  Epoch 12/20, Loss: 9190.102648\n",
      "  Epoch 14/20, Loss: 8210.625615\n",
      "  Epoch 16/20, Loss: 7486.456007\n",
      "  Epoch 18/20, Loss: 7269.174323\n",
      "  Epoch 20/20, Loss: 6545.024783\n",
      "股票 300782 训练完成，最佳损失: 6545.024783\n",
      "数据点数量: 1407, 模型保存至: ./../../model\\model_300782.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300832 (296/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2920.834938\n",
      "  Epoch 2/20, Loss: 2294.364749\n",
      "  Epoch 4/20, Loss: 1583.772131\n",
      "  Epoch 6/20, Loss: 1087.447438\n",
      "  Epoch 8/20, Loss: 747.684320\n",
      "  Epoch 10/20, Loss: 528.502198\n",
      "  Epoch 12/20, Loss: 387.023758\n",
      "  Epoch 14/20, Loss: 308.143025\n",
      "  Epoch 16/20, Loss: 257.928047\n",
      "  Epoch 18/20, Loss: 232.033319\n",
      "  Epoch 20/20, Loss: 221.764575\n",
      "股票 300832 训练完成，最佳损失: 221.764575\n",
      "数据点数量: 1189, 模型保存至: ./../../model\\model_300832.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300896 (297/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 93176.261827\n",
      "  Epoch 2/20, Loss: 90265.802409\n",
      "  Epoch 4/20, Loss: 85989.881076\n",
      "  Epoch 6/20, Loss: 81891.549696\n",
      "  Epoch 8/20, Loss: 77952.664171\n",
      "  Epoch 10/20, Loss: 74218.034505\n",
      "  Epoch 12/20, Loss: 70551.093316\n",
      "  Epoch 14/20, Loss: 67225.758789\n",
      "  Epoch 16/20, Loss: 63952.455621\n",
      "  Epoch 18/20, Loss: 60826.068766\n",
      "  Epoch 20/20, Loss: 57809.567817\n",
      "股票 300896 训练完成，最佳损失: 57809.567817\n",
      "数据点数量: 1092, 模型保存至: ./../../model\\model_300896.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300979 (298/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 3595.938127\n",
      "  Epoch 2/20, Loss: 2951.460392\n",
      "  Epoch 4/20, Loss: 2262.876799\n",
      "  Epoch 6/20, Loss: 1730.941496\n",
      "  Epoch 8/20, Loss: 1317.448130\n",
      "  Epoch 10/20, Loss: 999.805045\n",
      "  Epoch 12/20, Loss: 769.754279\n",
      "  Epoch 14/20, Loss: 591.684243\n",
      "  Epoch 16/20, Loss: 472.967073\n",
      "  Epoch 18/20, Loss: 385.412252\n",
      "  Epoch 20/20, Loss: 325.034520\n",
      "股票 300979 训练完成，最佳损失: 325.034520\n",
      "数据点数量: 955, 模型保存至: ./../../model\\model_300979.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 300999 (299/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 2343.881963\n",
      "  Epoch 2/20, Loss: 1813.909210\n",
      "  Epoch 4/20, Loss: 1334.721530\n",
      "  Epoch 6/20, Loss: 1017.129019\n",
      "  Epoch 8/20, Loss: 809.761678\n",
      "  Epoch 10/20, Loss: 674.684270\n",
      "  Epoch 12/20, Loss: 589.779965\n",
      "  Epoch 14/20, Loss: 543.321345\n",
      "  Epoch 16/20, Loss: 518.335625\n",
      "  Epoch 18/20, Loss: 498.387376\n",
      "  Epoch 20/20, Loss: 487.732270\n",
      "股票 300999 训练完成，最佳损失: 487.732270\n",
      "数据点数量: 1085, 模型保存至: ./../../model\\model_300999.pth\n",
      "\n",
      "==================================================\n",
      "训练股票 301269 (300/300)\n",
      "==================================================\n",
      "  Epoch 1/20, Loss: 9273.339551\n",
      "  Epoch 2/20, Loss: 8410.400635\n",
      "  Epoch 4/20, Loss: 7585.992480\n",
      "  Epoch 6/20, Loss: 6828.305225\n",
      "  Epoch 8/20, Loss: 6129.033252\n",
      "  Epoch 10/20, Loss: 5497.704687\n",
      "  Epoch 12/20, Loss: 4918.159448\n",
      "  Epoch 14/20, Loss: 4398.922180\n",
      "  Epoch 16/20, Loss: 3930.545020\n",
      "  Epoch 18/20, Loss: 3495.945068\n",
      "  Epoch 20/20, Loss: 3098.596600\n",
      "股票 301269 训练完成，最佳损失: 3098.596600\n",
      "数据点数量: 639, 模型保存至: ./../../model\\model_301269.pth\n",
      "\n",
      "============================================================\n",
      "所有股票训练完成！\n",
      "成功训练的股票数量: 300\n",
      "所有股票模型的MSE总和: 1766196.669861\n",
      "简单平均MSE: 5887.322233\n",
      "总数据点数量: 632729\n",
      "按数据点数量加权平均的总体MSE: 6171.121393\n",
      "============================================================\n"
     ]
    }
   ],
   "source": [
    "# 获取特征列\n",
    "features = df.columns.difference([\"Date\", \"StockCode\"]).tolist()\n",
    "\n",
    "# 获取所有股票代码\n",
    "unique_stock_codes = df[\"StockCode\"].unique()\n",
    "print(f\"总共有 {len(unique_stock_codes)} 支股票需要训练\")\n",
    "\n",
    "# 存储每个股票的模型和结果\n",
    "stock_models = {}\n",
    "stock_scalers = {}\n",
    "stock_losses = {}\n",
    "stock_data_points = {}  # 存储每个股票的数据点数量\n",
    "total_mse_loss = 0.0\n",
    "total_weighted_mse = 0.0  # 加权MSE总和\n",
    "total_data_points = 0  # 总数据点数量\n",
    "\n",
    "# 创建目录\n",
    "os.makedirs(MODEL_DIR, exist_ok=True)\n",
    "os.makedirs(OUTPUT_DIR, exist_ok=True)\n",
    "\n",
    "# 训练每个股票的模型\n",
    "for i, stock_code in enumerate(unique_stock_codes):\n",
    "    print(f\"\\n{'='*50}\")\n",
    "    print(f\"训练股票 {stock_code} ({i+1}/{len(unique_stock_codes)})\")\n",
    "    print(f\"{'='*50}\")\n",
    "\n",
    "    # 获取该股票的数据\n",
    "    stock_data = df[df[\"StockCode\"] == stock_code].copy()\n",
    "    stock_data = stock_data.sort_values(\"Date\").reset_index(drop=True)\n",
    "\n",
    "    # 特征标准化（保留收盘价原始值）\n",
    "    scaler = StandardScaler()\n",
    "    backup_close = stock_data[\"Close\"].copy()\n",
    "    stock_data[features] = scaler.fit_transform(stock_data[features])\n",
    "    stock_data[\"Close\"] = backup_close\n",
    "\n",
    "    # 保存标准化器\n",
    "    stock_scalers[stock_code] = scaler\n",
    "\n",
    "    # 创建数据集\n",
    "    dataset = StockDataset(stock_data, seq_len, features)\n",
    "\n",
    "    if len(dataset) == 0:\n",
    "        print(f\"股票 {stock_code} 数据集为空，跳过\")\n",
    "        continue\n",
    "\n",
    "    dataloader = DataLoader(\n",
    "        dataset, batch_size=min(batch_size, len(dataset)), shuffle=False\n",
    "    )\n",
    "\n",
    "    # 创建模型\n",
    "    model = IndRNNLSTMModel(\n",
    "        input_size=len(features),\n",
    "        indrnn_hidden_size=indrnn_hidden_size,\n",
    "        lstm_hidden_size=lstm_hidden_size,\n",
    "        num_indrnn_layers=num_indrnn_layers,\n",
    "        num_lstm_layers=num_lstm_layers,\n",
    "        output_size=output_size,\n",
    "        dropout=dropout,\n",
    "    ).to(device)\n",
    "\n",
    "    # 损失函数和优化器\n",
    "    criterion = nn.MSELoss()\n",
    "    optimizer = Adam(model.parameters(), lr=learning_rate)\n",
    "\n",
    "    # 训练模型\n",
    "    best_loss = float(\"inf\")\n",
    "    model_path = os.path.join(MODEL_DIR, f\"model_{stock_code}.pth\")\n",
    "\n",
    "    for epoch in range(num_epochs):\n",
    "        model.train()\n",
    "        epoch_loss = 0.0\n",
    "        num_batches = 0\n",
    "\n",
    "        for X_batch, y_batch in dataloader:\n",
    "            X_batch, y_batch = X_batch.to(device), y_batch.to(device)\n",
    "\n",
    "            optimizer.zero_grad()\n",
    "            outputs = model(X_batch)\n",
    "            loss = criterion(outputs.squeeze(), y_batch)\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "\n",
    "            epoch_loss += loss.item()\n",
    "            num_batches += 1\n",
    "\n",
    "        avg_loss = epoch_loss / num_batches if num_batches > 0 else float(\"inf\")\n",
    "\n",
    "        # 保存最佳模型\n",
    "        if avg_loss < best_loss:\n",
    "            best_loss = avg_loss\n",
    "            torch.save(model.state_dict(), model_path)\n",
    "\n",
    "        if (epoch + 1) % 2 == 0 or epoch == 0:\n",
    "            print(f\"  Epoch {epoch+1}/{num_epochs}, Loss: {avg_loss:.6f}\")\n",
    "\n",
    "    # 记录该股票的最佳损失和数据点数量\n",
    "    stock_losses[stock_code] = best_loss\n",
    "    stock_data_points[stock_code] = len(dataset)  # 记录数据点数量\n",
    "    total_mse_loss += best_loss\n",
    "    total_weighted_mse += best_loss * len(dataset)  # 加权累加\n",
    "    total_data_points += len(dataset)  # 累加数据点数量\n",
    "\n",
    "    # 保存模型\n",
    "    stock_models[stock_code] = model_path\n",
    "\n",
    "    print(f\"股票 {stock_code} 训练完成，最佳损失: {best_loss:.6f}\")\n",
    "    print(f\"数据点数量: {len(dataset)}, 模型保存至: {model_path}\")\n",
    "\n",
    "print(f\"\\n{'='*60}\")\n",
    "print(f\"所有股票训练完成！\")\n",
    "print(f\"成功训练的股票数量: {len(stock_models)}\")\n",
    "print(f\"所有股票模型的MSE总和: {total_mse_loss:.6f}\")\n",
    "print(f\"简单平均MSE: {total_mse_loss/len(stock_models):.6f}\")\n",
    "print(f\"总数据点数量: {total_data_points}\")\n",
    "# 计算按数据点数量加权平均的总体MSE\n",
    "weighted_average_mse = (\n",
    "    total_weighted_mse / total_data_points if total_data_points > 0 else 0\n",
    ")\n",
    "print(f\"按数据点数量加权平均的总体MSE: {weighted_average_mse:.6f}\")\n",
    "print(f\"{'='*60}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "deb3e0bd",
   "metadata": {},
   "source": [
    "## 使用训练好的模型进行预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "74c545a8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "开始使用训练好的模型进行预测...\n",
      "完成 300 支股票的预测\n",
      "\n",
      "涨幅最大的前10支股票: [np.int64(2), np.int64(2812), np.int64(2129), np.int64(688303), np.int64(688599), np.int64(300122), np.int64(600745), np.int64(300759), np.int64(2271), np.int64(2466)]\n",
      "涨幅最小的后10支股票: [np.int64(2594), np.int64(688041), np.int64(688111), np.int64(300394), np.int64(600809), np.int64(605499), np.int64(2371), np.int64(688506), np.int64(688256), np.int64(600519)]\n",
      "\n",
      "预测结果已保存到: ./../../output\\results_every_stock.csv\n",
      "损失汇总已保存到: ./../../output\\stock_losses_summary.csv\n",
      "\n",
      "最终总结:\n",
      "- 成功训练股票数: 300\n",
      "- 所有股票模型MSE总和: 1766196.669861\n",
      "- 简单平均MSE: 5887.322233\n",
      "- 按数据点数量加权平均的总体MSE: 6171.121393\n",
      "- 总数据点数量: 632729\n"
     ]
    }
   ],
   "source": [
    "# 在测试集上进行预测\n",
    "all_preds = []\n",
    "max_date = df[\"Date\"].max()\n",
    "\n",
    "print(\"开始使用训练好的模型进行预测...\")\n",
    "\n",
    "with torch.no_grad():\n",
    "    for stock_code in stock_models.keys():\n",
    "        # 加载该股票的模型\n",
    "        model_path = stock_models[stock_code]\n",
    "        scaler = stock_scalers[stock_code]\n",
    "\n",
    "        # 创建模型实例\n",
    "        model = IndRNNLSTMModel(\n",
    "            input_size=len(features),\n",
    "            indrnn_hidden_size=indrnn_hidden_size,\n",
    "            lstm_hidden_size=lstm_hidden_size,\n",
    "            num_indrnn_layers=num_indrnn_layers,\n",
    "            num_lstm_layers=num_lstm_layers,\n",
    "            output_size=output_size,\n",
    "            dropout=dropout,\n",
    "        ).to(device)\n",
    "\n",
    "        # 加载训练好的权重\n",
    "        model.load_state_dict(torch.load(model_path))\n",
    "        model.eval()\n",
    "\n",
    "        # 获取该股票的最新数据用于预测\n",
    "        stock_data = df[df[\"StockCode\"] == stock_code].sort_values(\"Date\")\n",
    "\n",
    "        if len(stock_data) < seq_len:\n",
    "            print(f\"股票 {stock_code} 的数据不足，跳过预测\")\n",
    "            continue\n",
    "\n",
    "        # 获取最后seq_len条记录\n",
    "        last_records = stock_data.iloc[-seq_len:].copy().reset_index(drop=True)\n",
    "\n",
    "        # 标准化特征（保留收盘价）\n",
    "        backup_close = last_records[\"Close\"].copy()\n",
    "        last_records[features] = scaler.transform(last_records[features])\n",
    "        last_records[\"Close\"] = backup_close\n",
    "\n",
    "        # 提取特征\n",
    "        X = last_records[features].values\n",
    "\n",
    "        # 转换为张量并添加批次维度\n",
    "        X = torch.tensor(X, dtype=torch.float32).unsqueeze(0).to(device)\n",
    "\n",
    "        # 进行预测\n",
    "        pred = model(X)\n",
    "        pred_value = pred.item()\n",
    "\n",
    "        # 保存预测结果\n",
    "        all_preds.append((stock_code, pred_value))\n",
    "\n",
    "print(f\"完成 {len(all_preds)} 支股票的预测\")\n",
    "\n",
    "# 计算涨跌幅并排序\n",
    "pricechangerate = []\n",
    "for i in range(len(all_preds)):\n",
    "    stockcode, pred = all_preds[i]\n",
    "\n",
    "    # 获取该股票当前的收盘价\n",
    "    preClose = df[(df[\"StockCode\"] == stockcode) & (df[\"Date\"] == max_date)][\n",
    "        \"Close\"\n",
    "    ].values[0]\n",
    "\n",
    "    # 计算预测涨跌幅 = (预测价格 - 当前价格) / 当前价格 * 100%\n",
    "    pricechangerate.append((stockcode, (pred - preClose) / preClose * 100))\n",
    "\n",
    "# 按涨跌幅排序（降序）\n",
    "pricechangerate = sorted(pricechangerate, key=lambda x: x[1], reverse=True)\n",
    "\n",
    "# 获取涨幅最大的前10支股票和涨幅最小的后10支股票\n",
    "pred_top_10_max_target = [x[0] for x in pricechangerate[:10]]  # 涨幅最大的10支\n",
    "pred_top_10_min_target = [x[0] for x in pricechangerate[-10:]]  # 涨幅最小的10支\n",
    "\n",
    "print(f\"\\n涨幅最大的前10支股票: {pred_top_10_max_target}\")\n",
    "print(f\"涨幅最小的后10支股票: {pred_top_10_min_target}\")\n",
    "\n",
    "# 构建结果数据\n",
    "data = {\n",
    "    \"涨幅最大股票代码\": pred_top_10_max_target,\n",
    "    \"涨幅最小股票代码\": pred_top_10_min_target,\n",
    "}\n",
    "\n",
    "# 输出预测结果到CSV文件\n",
    "RESULT_PATH = os.path.join(OUTPUT_DIR, \"results_every_stock.csv\")\n",
    "result_df = pd.DataFrame(data)\n",
    "result_df.to_csv(RESULT_PATH, index=False)\n",
    "print(f\"\\n预测结果已保存到: {RESULT_PATH}\")\n",
    "\n",
    "# 保存损失汇总\n",
    "loss_summary = {\n",
    "    \"股票代码\": list(stock_losses.keys()),\n",
    "    \"MSE损失\": list(stock_losses.values()),\n",
    "    \"数据点数量\": [stock_data_points[code] for code in stock_losses.keys()],\n",
    "    \"加权MSE贡献\": [\n",
    "        stock_losses[code] * stock_data_points[code] for code in stock_losses.keys()\n",
    "    ],\n",
    "}\n",
    "loss_df = pd.DataFrame(loss_summary)\n",
    "loss_df[\"总MSE损失\"] = total_mse_loss\n",
    "loss_df[\"总数据点数量\"] = total_data_points\n",
    "loss_df[\"加权平均MSE\"] = weighted_average_mse\n",
    "LOSS_PATH = os.path.join(OUTPUT_DIR, \"stock_losses_summary.csv\")\n",
    "loss_df.to_csv(LOSS_PATH, index=False)\n",
    "print(f\"损失汇总已保存到: {LOSS_PATH}\")\n",
    "\n",
    "print(f\"\\n最终总结:\")\n",
    "print(f\"- 成功训练股票数: {len(stock_models)}\")\n",
    "print(f\"- 所有股票模型MSE总和: {total_mse_loss:.6f}\")\n",
    "print(f\"- 简单平均MSE: {total_mse_loss/len(stock_models):.6f}\")\n",
    "print(f\"- 按数据点数量加权平均的总体MSE: {weighted_average_mse:.6f}\")\n",
    "print(f\"- 总数据点数量: {total_data_points}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "3644d02b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "47\n",
      "[np.int64(688256), np.int64(2049), np.int64(2304), np.int64(300033), np.int64(601100), np.int64(688012), np.int64(688271), np.int64(300308), np.int64(661), np.int64(601888), np.int64(2594), np.int64(601127), np.int64(600745), np.int64(688041), np.int64(688169), np.int64(568), np.int64(605499), np.int64(300347), np.int64(605117), np.int64(2371), np.int64(2812), np.int64(600519), np.int64(601799), np.int64(300750), np.int64(603986), np.int64(688082), np.int64(596), np.int64(301269), np.int64(300760), np.int64(858), np.int64(300122), np.int64(300896), np.int64(2916), np.int64(2920), np.int64(600809), np.int64(300394), np.int64(600941), np.int64(603501), np.int64(688111), np.int64(300014), np.int64(300782), np.int64(300274), np.int64(600436), np.int64(300661), np.int64(688506), np.int64(603259), np.int64(603260)]\n",
      "错误股票列表已保存到: ./../../output\\error_stock.txt\n"
     ]
    }
   ],
   "source": [
    "error_stock = [s for s, lo in stock_losses.items() if lo > 1000]\n",
    "error_stock = list(set(error_stock))\n",
    "print(len(error_stock))\n",
    "print(error_stock)\n",
    "with open(os.path.join(OUTPUT_DIR, \"error_stock.txt\"), \"w\") as f:\n",
    "    for stock in error_stock:\n",
    "        f.write(f\"{stock}\\n\")\n",
    "print(f\"错误股票列表已保存到: {os.path.join(OUTPUT_DIR, 'error_stock.txt')}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d158a7e2",
   "metadata": {},
   "source": [
    "## 结果分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "519b1ae3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZ/FJREFUeJzt3Xl4VOUZ9/HfTCALQoCYjUBYFQRZRQmRqqiBgJSKYqtIAQGxauKrpFrABQhWYnHDKkKrQrSvLGIVFRHFYKDW4BLlFRFpWeNCQoCSTEL2Oe8fkIExgUwymTmTzPdzXblkznnOM/e5zXJy51kshmEYAgAAAAAAALzIanYAAAAAAAAA8D8UpQAAAAAAAOB1FKUAAAAAAADgdRSlAAAAAAAA4HUUpQAAAAAAAOB1FKUAAAAAAADgdRSlAAAAAAAA4HUUpQAAAAAAAOB1FKUAAAAAAADgdRSlAAAAAAAA4HUUpQD4jfT0dFksFlksFn3yySc1zhuGodjYWFksFv361792OldUVKR58+apb9++Ou+883T++edr4MCBuvfee/Xzzz872s2fP9/xHrV95Obmevw+AQAA3MVzEwBvaGF2AAB8386dOzVo0CAFBgbWer68vFxff/11nW127dql0tJSU9r16NHDcSw4OFgrV67Ur371K6e2W7Zs0Y8//qigoCCn4xUVFbryyiv1/fffa8qUKbrnnntUVFSknTt3auXKlbrhhhsUExPjdM3SpUvVunXrGvG0a9dOkhQdHa2ioqJaY66srNQLL7ygadOmmdYOAAA0DM9NPDcBcB1FKQB1MgxDQ4YMqfWvZJI0dOhQl9uY1e5M1113ndauXau//vWvatHi9LfBlStXavDgwTpy5IhT+3Xr1unrr7/Wa6+9pltvvdXpXGlpqcrLy2u870033aTw8PBaY5JOPsgcP37c6f2rzZ49W3a73dR2AACgYXhu4rkJgOuYvgfA70yYMEFHjx7Vpk2bHMfKy8v1xhtv1Hh4kqS9e/dKkoYNG1bjXHBwsEJDQz0XLAAAgIl4bgLgSRSlAPidrl27Kj4+XqtWrXIce//991VQUKBbbrmlRvsuXbpIkl599dUafz08m2PHjunIkSNOH8ePH2+U+AEAALyF5yYAnkRRCoBfuvXWW7Vu3TqVlJRIkl577TVdddVVNdY4kKRx48apV69emjt3rrp166apU6dq+fLlOnz48Fn779WrlyIiIpw+hg4d6rH7AQAA8BSemwB4CkUpAH7pd7/7nUpKSrR+/XrZbDatX7++1iHokhQSEqLPPvtMDzzwgKSTu9FMnz5dHTp00D333KOysrIa1/zzn//Upk2bnD5WrFjh0XsCAADwBJ6bAHgKC50D8EsRERFKSEjQypUrdeLECVVVVemmm246a/u2bdtq0aJFWrRokQ4ePKiMjAw9+eSTev7559W2bVv9+c9/dmp/5ZVXnnPBTgBoDrZu3aonnnhC2dnZOnTokN566y2NGzeuXn0YhqGnnnpKf//733Xw4EGFh4fr7rvv1kMPPeSZoAHUG89NADyFkVIA/Natt96q999/X8uWLdPo0aMd2w7XpUuXLpo2bZr+/e9/q127dnrttdc8GygA+Kji4mINGDBAS5YsaXAf9957r1566SU9+eST+v777/XOO+9oyJAhjRglgMbAcxMAT6AoBcBv3XDDDbJardq2bdtZh6CfS/v27dWjRw8dOnTIA9EBgO8bPXq0/vznP+uGG26o9XxZWZnuv/9+dezYUeedd57i4uKUmZnpOL9r1y4tXbpUb7/9tn7zm9+oW7duGjx4sEaMGOGlOwDgKp6bAHgC0/cA+K3WrVtr6dKlOnDggMaOHXvWdv/v//0/dezYscaw8oMHD+q7775Tr169PB0qADRJycnJ+u6777R69WrFxMTorbfe0qhRo7Rjxw5deOGFevfdd9W9e3etX79eo0aNkmEYSkhI0KJFixQWFmZ2+ADOwHMTAE+gKAXAr02ZMqXONps2bdK8efP0m9/8RkOHDlXr1q21b98+LV++XGVlZZo/f36Na9544w21bt26xvERI0YoKiqqMUIHAJ+Wk5OjFStWKCcnx7FD1/3336+NGzdqxYoVWrhwofbt26eDBw9q7dq1evXVV1VVVaWZM2fqpptu0ubNm02+AwC/xHMTgMZGUQoA6jB+/HjZbDZ9+OGH2rx5s44dO6b27dtryJAh+uMf/6irr766xjV33XVXrX19/PHHPFwB8As7duxQVVWVevbs6XS8rKxM559/viTJbrerrKxMr776qqPdyy+/rMGDB2v37t2MqACaIJ6bANQHRSkAfuO2227TbbfdVme7AwcOOL3u1q2bUlNTlZqaWue18+fPr/UvgADgb4qKihQQEKDs7GwFBAQ4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YLGxsd4M32sa8rk0bNgw7dmzx6m48p///EcdOnRQYGCgx2P2tobk6MSJE7JanX8cVBfxDMPwXLBNjD9+/26IVatWaerUqVq1apXGjBljdjhoIhr6rICTioqKtHfvXnXo0EGDBw9Wy5YtnXK5e/du5eTkkMtf6Natm6Kjo51yVVhYqM8++8yRq/j4eB0/flzZ2dmONps3b5bdbnf8AozTfvzxRx09elQdOnSQ5N/5MwxDycnJeuutt7R582Z169bN6bwrX6vx8fHasWOHU2Fv06ZNCg0NVZ8+fbxzIyapK3+1qV7W5MzPP3/NX23sdrvKysp873OvUZdN90OrV682goKCjPT0dOO7774z7rjjDqNdu3aOVeonTZpkzJ4929H+3//+t9GiRQvjySefNHbt2mXMmzfPaNmypbFjxw6zbsEr6punxx9/3AgMDDTeeOMN49ChQ44Pm81m1i14XH1z9Ev+svteffOUk5NjtGnTxkhOTjZ2795trF+/3oiMjDT+/Oc/m3ULHlffHM2bN89o06aNsWrVKmPfvn3Ghx9+aPTo0cP43e9+Z9YteIXNZjO+/vpr4+uvvzYkGU8//bTx9ddfGwcPHjQMwzBmz55tTJo0ydF+3759RqtWrYwHHnjA2LVrl7FkyRIjICDA2Lhxo1m34HH1zdFrr71mtGjRwliyZInT9+7jx4+bdQtoQur63oXT/vjHPxqZmZnG/v37jX//+99GQkKCER4ebhw+fNgwDMO48847jc6dOxubN282vvzySyM+Pt6Ij483OWpz1PV97PHHHzfatWtnvP3228Y333xjXH/99Ua3bt2MkpISRx+jRo0yBg0aZHz22WfGJ598Ylx44YXGhAkTzLolrzpX/mw2m3H//fcbWVlZxv79+42PPvrIuOSSS4wLL7zQKC0tdfThr/m76667jLZt2xqZmZlOPxNPnDjhaFPX12plZaXRt29fY+TIkcb27duNjRs3GhEREcacOXPMuCWvqit/e/bsMRYsWGB8+eWXxv79+423337b6N69u3HllVc6+vDn/M2ePdvYsmWLsX//fuObb74xZs+ebVgsFuPDDz80DMO3PvcoSjWC5557zujcubMRGBhoDBkyxNi2bZvj3FVXXWVMmTLFqf3rr79u9OzZ0wgMDDQuvvhi47333vNyxOaoT566dOliSKrxMW/ePO8H7kX1/Vw6k78UpQyj/nn69NNPjbi4OCMoKMjo3r278dhjjxmVlZVejtq76pOjiooKY/78+UaPHj2M4OBgIzY21rj77ruN//3vf94P3Is+/vjjWr/PVOdmypQpxlVXXVXjmoEDBxqBgYFG9+7djRUrVng9bm+qb46uuuqqc7YH6nKu71047eabbzY6dOhgBAYGGh07djRuvvlmY8+ePY7zJSUlxt133220b9/eaNWqlXHDDTcYhw4dMjFi89T1fcxutxuPPPKIERUVZQQFBRnXXnutsXv3bqc+jh49akyYMMFo3bq1ERoaakydOrVZ/6H0TOfK34kTJ4yRI0caERERRsuWLY0uXboYM2bMqFFI9tf81ZY3SU7PDq58rR44cMAYPXq0ERISYoSHhxt//OMfjYqKCi/fjffVlb+cnBzjyiuvNMLCwoygoCDjggsuMB544AGjoKDAqR9/zd+0adOMLl26GIGBgUZERIRx7bXXOgpShuFbn3sWw2BuBgAAAAAAALyLNaUAAAAAAADgdRSlAAAAAAAA4HUUpQAAAAAAAOB1FKUAAAAAAADgdRSlAAAAAAAA4HUUpQAAAAAAAOB1FKUAAAAAAADgdRSlAAAAAAAA4HUUpQAAQLOwdetWjR07VjExMbJYLFq3bl29+zAMQ08++aR69uypoKAgdezYUY899ljjBwsAAAC1MDsAAACAxlBcXKwBAwZo2rRpuvHGGxvUx7333qsPP/xQTz75pPr166djx47p2LFjjRwpAJzbli1b9Ic//EHBwcFOx+12u6666ip9/vnnKisrq3FdUVGRdu7cqcWLF+sf//iHWrRw/nWvvLxcDz30kIYOHarRo0erVatWNfro1q2b3nrrLd1www3av39/jfMnTpzQ+++/r23btumxxx5TYGCg0/nKykpNmjRJ9913ny6++GK1bt26Rh9BQUH67LPPdM8992jLli2yWp3HSpSWlupvf/ubJJ0zD88995zi4uLcysXEiRNrXAvAeyhKAWjybrvtNr3yyiv6wx/+oGXLljmdS0pK0gsvvKApU6YoPT1d+fn5mjt3rt577z3l5eWpffv2GjBggObOnathw4ZJkrp27aqDBw/WeJ+0tDTNnj3b7Ye0WbNmNeLdA6g2evRojR49+qzny8rK9NBDD2nVqlU6fvy4+vbtq7/85S8aPny4JGnXrl1aunSpvv32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",
      "text/plain": [
       "<Figure size 1200x500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "损失统计信息:\n",
      "- 最小损失: 0.011150\n",
      "- 最大损失: 1296289.326365\n",
      "- 简单平均损失: 5887.322233\n",
      "- 按数据点加权平均损失: 6171.121393\n",
      "- 损失标准差: 74880.055787\n",
      "- 损失中位数: 42.306499\n",
      "\n",
      "数据点统计信息:\n",
      "- 最小数据点数: 400\n",
      "- 最大数据点数: 2422\n",
      "- 平均数据点数: 2109.1\n",
      "- 总数据点数: 632729\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9wAAAJOCAYAAABFiQ/hAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAixFJREFUeJzs3XmYVnX9//HXOfc6+zA7y7DKoimCKIuKK4pklKa5Fopkuf4syhIr0Sxxy8xcKBPNEjWtLDeML4lbuESShoLso8AMMywz9yz3es7vjzNzMzczAzMwh7mR5+O6uHTu+3Pf53PO+yz366yGbdu2AAAAAABAtzJ7ugMAAAAAAHweEbgBAAAAAHABgRsAAAAAABcQuAEAAAAAcAGBGwAAAAAAFxC4AQAAAABwAYEbAAAAAAAXELgBAAAAAHABgRsAAAAAABcQuAEAAAAAcAGBGwCAg9hjjz0mwzBkGIbefPPNNu/btq3y8nIZhqEvfelLKe/V19dr9uzZOvzww5WVlaXCwkKNGjVK1113nTZt2pRsd/PNNyeH0d6/yspK18cTAICe4O3pDgAAsC+WL1+u0aNHy+/3t/t+NBrV+++/v8c2H3/8scLh8EHVbsiQIcnXgsGg5s+fr+OPPz6l7WuvvabPPvtMgUAg5fVYLKYTTjhBK1as0CWXXKJrr71W9fX1Wr58uebPn6+zzz5bffr0SfnMQw89pOzs7Db9yc/PlySVlZWpvr6+3T7H43E9+OCDuuyyy9K+HQAALQjcAIADmm3bGjt2bLtHZyVp/PjxnW5zsLVr7Ytf/KKeeeYZ3XffffJ6d/48mD9/vsaMGaOampqU9s8995zef/99PfHEE7roootS3guHw4pGo22Ge+6556qoqKjdPklOaN2xY0fK8FvccMMNsizrgGgHAEALTikHAAC68MILtXXrVi1cuDD5WjQa1bPPPtsmUEvSmjVrJEnHHXdcm/eCwaByc3Pd6ywAAAcIAjcAANDAgQM1YcIEPfnkk8nXXn75ZdXW1uqCCy5o037AgAGSpMcff7zN0fKObNu2TTU1NSn/duzY0S39BwAgHRG4AQCAJOmiiy7Sc889p6amJknSE088oRNPPLHNtdiSdNZZZ2n48OG66aabNGjQIE2fPl3z5s3Tli1bOvz+4cOHq7i4OOXf+PHjXRsfAAB6GoEbAABIks477zw1NTXphRdeUCgU0gsvvNDu6eSSlJGRoXfeeUfXX3+9JOdu5zNmzFDv3r117bXXKhKJtPnMn//8Zy1cuDDl36OPPurqOAEA0JMO6sD9+uuva+rUqerTp48Mw9Bzzz3X5e+wbVt33323hg0bpkAgoL59++rnP/9593cWAACXFRcXa9KkSZo/f77+8pe/KJFI6Nxzz+2wfV5enu68806tX79e69ev1yOPPKLhw4fr/vvv16233tqm/QknnKBJkyal/JswYYKbowQAQI86qAN3Q0ODjjzySD3wwAN7/R3XXXedfve73+nuu+/WihUr9Pe//11jx47txl4CALD/XHTRRXr55Zc1d+5cTZkyJfnIrj0ZMGCALrvsMr311lvKz8/XE0884W5HAQA4ABzUjwWbMmWKpkyZ0uH7kUhEP/rRj/Tkk09qx44dOvzww3XHHXfopJNOkiR9/PHHeuihh/S///1Pw4cPlyQNGjRof3QdAABXnH322fr2t7+tt99+W08//XSXP9+rVy8NGTJE//vf/1zoHQAAB5aD+gj3nlxzzTVasmSJnnrqKX3wwQf62te+pjPOOEOrVq2SJD3//PMaPHiwXnjhBQ0aNEgDBw7UN7/5TW3btq2Hew4AwN7Jzs7WQw89pJtvvllTp07tsN1///vfNs/mlqQNGzboo48+Su6IBgDgYHZQH+HenYqKCj366KOqqKhI3p31+9//vhYsWKBHH31Ut912m9auXasNGzbomWee0eOPP65EIqHvfve7Ovfcc/XPf/6zh8cAAIC9c8kll+yxzcKFCzV79mx9+ctf1vjx45Wdna21a9dq3rx5ikQiuvnmm9t85tlnn1V2dnab10877TSVlpZ2R9cBAEgrBO4OfPjhh0okEho2bFjK65FIRIWFhZIky7IUiUT0+OOPJ9s98sgjGjNmjFauXMnefQDA59Y555yjUCikf/zjH/rnP/+pbdu2qVevXho7dqy+973v6eSTT27zmSuvvLLd73r11VcJ3ACAzyUCdwfq6+vl8Xi0dOlSeTyelPda9s737t1bXq83JZQfeuihkpwj5ARuAEC6u/TSS3XppZfusd369etT/h40aJBuueUW3XLLLXv87M0339zuEW8AAD7vCNwdGD16tBKJhLZs2aKJEye22+a4445TPB7XmjVrNGTIEEnSJ598Ism5WysAAAAA4OB1UAfu+vp6rV69Ovn3unXrtGzZMhUUFGjYsGG6+OKLNW3aNP3iF7/Q6NGjVV1drUWLFmnkyJE688wzNWnSJB111FG67LLLdO+998qyLF199dU67bTT2pyKDgBwz9tvv93h46vq6+s73eZgbJduioqK2n09HA7r/vvvP2DaAQAgSYZt23ZPd6KnLF68uN1rzC655BI99thjisVi+tnPfqbHH39cGzduVFFRkcaPH69bbrlFRxxxhCRp06ZNuvbaa/WPf/xDWVlZmjJlin7xi1+ooKBgf48OAAAAACCNHNSBGwAAAAAAt/AcbgAAAAAAXEDgBgAAAADABQfdTdMsy9KmTZuUk5MjwzB6ujsAAAAAgDRj27ZCoZD69Okj09z749QHXeDetGmTysvLe7obAAAAAIA09+mnn6pfv357/fmDLnDn5ORIciZcbm5uD/fmwGVZlqqrq1VcXLxPe3zQ/ahNeqIu6Ym6pCfqkp6oS/qiNumJuqSnztalrq5O5eXlyfy4tw66wN1yGnlubi6Bex9YlqVwOKzc3FxWIGmG2qQn6pKeqEt6oi7pibqkL2qTnqhLeupqXfb1MmQqDwAAAACACwjcAAAAAAC4gMANAAAAAIALDrpruDsrkUgoFov1dDfSlmVZisViCofDXJOSZqiN+/x+P9MWAAAAe0Tg3oVt26qsrNSOHTt6uitpzbZtWZalUCjE88zTDLVxn2maGjRokPx+f093BQAAAGmMwL2LlrBdUlKizMxMAksHbNtWPB6X1+tlGqUZauMuy7K0adMmbd68Wf3792caAwAAoEME7lYSiUQybBcWFvZ0d9IaoS59URv3FRcXa9OmTYrH4/L5fD3dHQAAAKQpLkJspeWa7czMzB7uCYB01nIqeSKR6OGeAAAAIJ0RuNvBUUEAu8M6AgAAAJ1B4AYAAAAAwAUEbgAAAAAAXEDg/hx47bXXNGLECI0aNSrl38iRI3XttddKksaNG9fm/VGjRumQQw5RJBLRHXfcocMPP7zN+4cddpieeOKJHhu3OXPm6JhjjlFOTo5KSkp01llnaeXKlbv9zMMPP6yJEyeqV69e6tWrlyZNmqR33323TbuPP/5YX/7yl5WXl6esrCwdc8wxqqiocGtUZNu2brrpJvXu3VsZGRmaNGmSVq1aldJm27Ztuvjii5Wbm6v8/HzNmDFD9fX1rvVp8+bNuuiiizRs2DCZpqnvfOc7bdosX75c55xzjgYOHCjDMHTvvfe2afPQQw9p5MiRys3NVW5uriZMmKCXX345pU04HNbVV1+twsJCZWdn65xzzlFVVdVu+3fppZfKMIyUf2eccUby/fXr12vGjBkaNGiQMjIyNGTIEM2ePVvRaDTle1555RWNHz9eOTk5Ki4u1jnnnKP169entHniiSd05JFHKjMzU71799Zll12mrVu37n4CAgAAALtB4P4caGpq0gUXXKBly5al/Pv73/+u6upqSc41p7u+v2zZMvXr10+2bWv79u26//7727z/gx/8QKFQqMfG7bXXXtPVV1+tt99+WwsXLlQsFtPpp5+uhoaGDj+zePFiXXjhhXr11Ve1ZMkSlZeX6/TTT9fGjRuTbdasWaPjjz9eI0aM0OLFi/XBBx/oJz/5iYLB4F739eabb9all17a4ft33nmn7rvvPs2dO1fvvPOOsrKyNHnyZIXD4WSbiy++WMuXL9fChQv1wgsv6PXXX9e3vvWtve7T+vXrd3u9cSQSUXFxsX784x/ryCOPbLdNY2OjBg8erNtvv11lZWXttunXr59uv/12LV26VP/+9791yimn6Ctf+YqWL1+ebPPd735Xzz//vJ555hm99tpr2rRpk7761a/ucRzOOOMMbd68OfnvySefTL63YsUKWZal3/zmN1q+fLl++ctfau7cubrxxhuTbdatW6evfOUrOuWUU7Rs2TK98sorqqmpSRn2W2+9pWnTpmnGjBlavny5nnnmGb377ru6/PLL99g/AAAAoEP2Qaa2ttaWZNfW1rZ5r6mpyf7oo4/spqamHujZ3nv55Zft2bNnt3l93bp19vnnn2/btm2PGzeu3c+eeOKJdlNTk/3DH/7QfvXVV9u8/+ijj9oPPfRQm9cty7Kj0ahtWVbytddee832er325s2bU9ped9119vHHH9+FMerYli1bbEn2a6+91unPxONxOycnx/7973+ffO3888+3v/71r+/2c9u3b7dnzJhhFxUV2Tk5OfbJJ59sL1u2rMP2s2fPti+55JJ237Msyy4rK7Pvuuuu5Gs7duywA4GA/eSTT9q2bdsfffSRLcl+7733km1efvll2zAMe+PGjbZt2/b06dPtI444wg6Hw7Zt23YkErFHjRplf+Mb30gZVktt1q1bZ3d2MT/xxBPt6667brdtBgwY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Z84c/b//9/80fPhw/fnPf05eD20Yhl566SX96Ec/0vTp01VdXa2ysjKdcMIJbW581lk/+MEP1NDQoG9961vasWOHjj/+eC1YsCDl2d9PPPGErrnmGp166qkyTVPnnHOO7rvvPklSOBzW17/+dV166aWaOnWqJOlb3/qWXnzxRX3jG9/Q66+/3u6NxPakJXRKzt3E58+frwEDBiTvRr9p06aUNnfffbfuvvtunXjiickdFFu2bNG0adO0efNm5eXlaeTIkXrllVd02mmnJT/3y1/+MjlOkUhEkydP1oMPPpjSl5UrVybvRO/xePTBBx/o97//vXbs2KE+ffro9NNP16233pq8kd3ChQu1evVqrV69us2lBi1Hpk855RTNnz9fd955p+68805lZmZqwoQJWrBgQXKnzaWXXqpQKKT7779f3/ve95Sfn69TTjkl5fIAAAAAdE04llA0bing232IDvhMReKWwrHE5y5wG/ZBdr5kXV2d8vLyVFtb2+bOzuFwWOvWrdOgQYNSQlC6W7Bggd5+++1kmGyxfv163XDDDXrqqac0fvx4vf32220+e9JJJ2nBggW6+eabdcYZZ7QJto899pjC4bCuuOKKlNdt206ettze3qoZM2aourpaf//73/d5/NA1e6oN9t3erCssy9KWLVtUUlLS5hR39Bzqkp6oS3qiLumL2qQn6uIc4b7uqffVFLVUltfxb6bK2rAy/abuvWC064G7s3XZXW7sioOz8nBNbW2t3nzzTc2fP1/XXnttT3cHAAAAQA/xeZxHf9U1RTu8L45t26primrC4KLP3dFtiVPKPxfy8vL0wgsv6IUXXmjzXsu1rvn5+R1ed2yapvr166fvf//77b6/6x3Dd+crX/mK3n33XV1xxRUppxMDAAAAOPhMHFqkN1ZVq2Jbo/oXZKacgWnbtiq2NaowO6CJw4p6sJfuIXB/DkyYMEH//ve/d9tmwYIFu33/mmuu0TXXXLPPfWnvMVoAAAAADk4Di7I04/hBeuTNdVpVFUo+hzsSs1TXFFVhdkAzjh/0uXwkmETgBgAAAAC4aNzgQpXlBfXGJzVasrZGkbilTL+pU0f008RhRZ/bsC0RuAEAAAAALhtQmKUBE7J0/thyhWMJBX2ez+U127sicLfDsqye7gKANHaQPdwBAACg2/g85kERtFsQuFvx+/0yTVObNm1S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ruq1mJee6S439lwf9zY3Dv8/YCIiIiIiIiKyI/4fbiIiIiIiIiINsOEmIiIiIiIi0gAbbiIiIiIiIiINsOEmIiIiIiIi0gAbbiIiIiIiIiINsOEmIiIiIiIi0gAbbiIiIiIiIiINsOEmIiIiIiIi0gAbbiIiIiIiIiINOPX3ARAREVHPnThxAosWLcLgwYNV421tbZg6dSrOnj2LO3futNuuoaEBly9fxmeffYZvv/0WTk7qpUBzczPWrVuHmJgYJCcnw2AwtNtHYGAgcnJyMGvWLFgslnbzjY2NOHToEIKDg3t5lkRERE82NtxERERPoKamJsyZMwcbN25UjZeVleGDDz6Ag4MDzGZzu+2mTZsGEcGtW7fwxRdfYNq0aar57Oxs1NfXo6WlBZMnT0Z2dna7fcTExAAAKioqOnyNBQsWoKWl5RHPjIiIaODgLeVEREREREREGmDDTURERERERKQBNtxEREREREREGmDDTURERERERKQBNtxEREREREREGmDDTURERERERKQBNtxEREREREREGmDDTURERERERKQBNtxEREREREREGmDDTURERERERKQBp/4+ACIiIuo5Nzc35OXlIS8vr91cYmIirFYrJk6c2OG2jo6OGDVqFFatWtXh/Nq1a6HX61FUVNThPsLCwgAAY8aM6fQ19Hr9w54KERHRgOUgItLfB0FEREREREQ00PCWciIiIiIiIiINsOEmIiIiIiIi0gAbbiIiIiIiIiINsOEmIiIiIiIi0gAbbiIiIiIiIiINsOEmIiIiIiIi0gAbbiIiIiIiIiINsOEmIiIiIiIi0gAbbiIiIiIiIiIN/A9CLjwQi3flWQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "表现最好的股票: 601868 (MSE: 0.011150)\n",
      "表现最差的股票: 600519 (MSE: 1296289.326365)\n"
     ]
    }
   ],
   "source": [
    "# 分析损失分布\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "if len(stock_losses) > 0:\n",
    "    losses = list(stock_losses.values())\n",
    "\n",
    "    plt.figure(figsize=(12, 5))\n",
    "\n",
    "    # 损失分布直方图\n",
    "    plt.subplot(1, 2, 1)\n",
    "    plt.hist(losses, bins=20, alpha=0.7, color=\"skyblue\", edgecolor=\"black\")\n",
    "    plt.title(\"各股票模型MSE损失分布\")\n",
    "    plt.xlabel(\"MSE损失\")\n",
    "    plt.ylabel(\"股票数量\")\n",
    "    plt.grid(True, alpha=0.3)\n",
    "\n",
    "    # 损失排序图\n",
    "    plt.subplot(1, 2, 2)\n",
    "    sorted_losses = sorted(losses)\n",
    "    plt.plot(range(len(sorted_losses)), sorted_losses, marker=\"o\", markersize=3)\n",
    "    plt.title(\"各股票模型MSE损失排序\")\n",
    "    plt.xlabel(\"股票序号（按损失排序）\")\n",
    "    plt.ylabel(\"MSE损失\")\n",
    "    plt.grid(True, alpha=0.3)\n",
    "\n",
    "    plt.tight_layout()\n",
    "\n",
    "    # 保存图像\n",
    "    plt.savefig(\n",
    "        os.path.join(OUTPUT_DIR, \"stock_losses_analysis.png\"),\n",
    "        dpi=300,\n",
    "        bbox_inches=\"tight\",\n",
    "    )\n",
    "    plt.show()\n",
    "\n",
    "    # 统计信息\n",
    "    data_points = list(stock_data_points.values())\n",
    "    print(f\"损失统计信息:\")\n",
    "    print(f\"- 最小损失: {min(losses):.6f}\")\n",
    "    print(f\"- 最大损失: {max(losses):.6f}\")\n",
    "    print(f\"- 简单平均损失: {np.mean(losses):.6f}\")\n",
    "    print(f\"- 按数据点加权平均损失: {weighted_average_mse:.6f}\")\n",
    "    print(f\"- 损失标准差: {np.std(losses):.6f}\")\n",
    "    print(f\"- 损失中位数: {np.median(losses):.6f}\")\n",
    "\n",
    "    print(f\"\\n数据点统计信息:\")\n",
    "    print(f\"- 最小数据点数: {min(data_points)}\")\n",
    "    print(f\"- 最大数据点数: {max(data_points)}\")\n",
    "    print(f\"- 平均数据点数: {np.mean(data_points):.1f}\")\n",
    "    print(f\"- 总数据点数: {total_data_points}\")\n",
    "\n",
    "    # 计算MSE与数据点数量的关系\n",
    "    mse_vs_datapoints = [\n",
    "        (stock_data_points[code], stock_losses[code]) for code in stock_losses.keys()\n",
    "    ]\n",
    "    mse_vs_datapoints.sort()\n",
    "\n",
    "    # 添加数据点数量与MSE关系的图\n",
    "    plt.figure(figsize=(10, 6))\n",
    "    x_points = [x[0] for x in mse_vs_datapoints]\n",
    "    y_losses = [x[1] for x in mse_vs_datapoints]\n",
    "\n",
    "    plt.scatter(x_points, y_losses, alpha=0.6, s=50)\n",
    "    plt.xlabel(\"数据点数量\")\n",
    "    plt.ylabel(\"MSE损失\")\n",
    "    plt.title(\"股票数据点数量与MSE损失的关系\")\n",
    "    plt.grid(True, alpha=0.3)\n",
    "\n",
    "    # 添加趋势线\n",
    "    z = np.polyfit(x_points, y_losses, 1)\n",
    "    p = np.poly1d(z)\n",
    "    plt.plot(\n",
    "        x_points,\n",
    "        p(x_points),\n",
    "        \"r--\",\n",
    "        alpha=0.8,\n",
    "        label=f\"趋势线: y={z[0]:.2e}x+{z[1]:.4f}\",\n",
    "    )\n",
    "    plt.legend()\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.savefig(\n",
    "        os.path.join(OUTPUT_DIR, \"mse_vs_datapoints.png\"), dpi=300, bbox_inches=\"tight\"\n",
    "    )\n",
    "    plt.show()\n",
    "\n",
    "    # 找出损失最小和最大的股票\n",
    "    min_loss_stock = min(stock_losses.items(), key=lambda x: x[1])\n",
    "    max_loss_stock = max(stock_losses.items(), key=lambda x: x[1])\n",
    "\n",
    "    print(f\"\\n表现最好的股票: {min_loss_stock[0]} (MSE: {min_loss_stock[1]:.6f})\")\n",
    "    print(f\"表现最差的股票: {max_loss_stock[0]} (MSE: {max_loss_stock[1]:.6f})\")\n",
    "else:\n",
    "    print(\"没有成功训练的股票模型\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.16"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
